Java中如何高效判断数组中是否包含某个元素

如何检查一个数组(无序)是否包含一个特定的值?

                                                                        检查数组是否包含某个值的方法

使用LIst

public static boolean useList(String [] arr,String target){
    return Arrays.asList(arr).contains(target);
}

使用Set

public static boolean useSet(String [] arr,String target){
    Set<String> set = new HashSet<String>(Arrays.asList(arr));
    return set.contains(target);
}

使用循环判断

public static boolean useLoop(String [] arr,String target){
    for(String s : arr){
        if(target.equals(s)){
            return true;
        }
    }
   return false;
}

使用Arrays.binarySearch()

Arrays.binarySearch()方法只能用于有序数组!!!如果数组无序的话得到的结果就会很奇怪。

public static boolean useArraysBinarySearch(String [] arr,String target){
    int a = Arrays.binarySearch(arr, target);
    if(a > 0)
        return true;
    else
        return false;
}

                                                                                        时间复杂度

https://mp.weixin.qq.com/s/BLlD9h2835ynR9FbTutNhw

猜你喜欢

转载自blog.csdn.net/qq_24047659/article/details/86619187