首页 > 代码库 > 如何高效地判断数组中是否包含某特定值
如何高效地判断数组中是否包含某特定值
如何检查一个未排序的数组中是否包含某个特定的值,这是在Java中非常实用并且频繁使用的操作。另外,检查数组中是否包含特定值可以用多种不同的方式实现,但是时间复杂度差别很大。下面,我将为大家展示各种方法及其需要花费的时间。
1.检查数组中是否包含特定值的四种不同方法
- 使用List:
1 public static boolean useList(String[] arr,String targetValue){ 2 return Array.asList(arr).contains(targetValue); 3 }
- 使用set
1 public static boolean useSet(String[] arr, String targetValue) { 2 Set<String> set = new HashSet<String>(Arrays.asList(arr)); 3 return set.contains(targetValue); 4 }
- 使用一个简单循环
public static boolean useLoop(String[] arr,String targetValue){ for(String s:arr){ if(s.equals(targetValue)){ return true; } }return false; }
- 使用Arrays.binarSearch()
public static int binarySearch(int[] a, int key)
- 使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。即使用Arrays.sort(a) 进行排序
1 public static boolean useArraysBinarySearch(String[] arr,String target){ 2 Arrays.sort(arr); 3 int a = Arrays.binarySearch(arr, target); 4 if(a >= 0){ 5 return true; 6 }else { 7 return false; 8 } 9 }
时间复杂度
- 使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。即使用Arrays.sort(a) 进行排序
如何高效地判断数组中是否包含某特定值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。