1.介绍
在 Java 中,有许多方法可以检查此数组中是否存在特定元素。
- 使用线性搜索方法
- 使用二进制搜索方法
- 使用 List.contains() 方法
- 使用 Stream.anyMatch() 方法
2.方法
1)使用线性搜索方法
时间复杂度:O(N) 辅助空间:O(1)
for (int element : arr) {
if (element == toCheckValue) {
return true;
}
}
public class T1 {
private static void check(int[] arr, int toCheckValue)
{
boolean test = false;
for (int element : arr) {
if (element == toCheckValue) {
test = true;
break;
}
}
System.out.println("Is " + toCheckValue
+ " present in the array: " + test);
}
public static void main(String[] args) {
int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
int toCheckValue = 7;
System.out.println("Array: "+ Arrays.toString(arr));
check(arr, toCheckValue);
}
}
Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true
2)使用二进制搜索方法
通过将搜索间隔重复分成两半来搜索排序数组。从覆盖整个数组的区间开始。如果搜索关键字的值小于区间中间的项,则将区间缩小到下半部分。否则,将其缩小到上半部分。反复检查,直到找到值或区间为空。
public static int binarySearch(data_type arr, data_type key)
时间复杂度:O(nlog(n)) 辅助空间:O(1)
public class T1 {
private static void check(int[] arr, int toCheckValue) {
Arrays.sort(arr);
int res = Arrays.binarySearch(arr, toCheckValue);
boolean test = res >= 0 ? true : false;
System.out.println("Is " + toCheckValue
+ " present in the array: " + test);
}
public static void main(String[] args) {
int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
int toCheckValue = 7;
System.out.println("Array: "+ Arrays.toString(arr));
check(arr, toCheckValue);
}
}
Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true
3)使用 List.contains() 方法
Java 中的 List contains() 方法用于检查指定元素是否存在于给定列表中。
public boolean contains(Object)
文章来源:https://www.toymoban.com/news/detail-625655.html
public class T1 {
private static void check(Integer[] arr, int toCheckValue) {
boolean test= Arrays.asList(arr) .contains(toCheckValue);
System.out.println("Is " + toCheckValue
+ " present in the array: " + test);
}
public static void main(String[] args) {
Integer arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
int toCheckValue = 7;
System.out.println("Array: "+ Arrays.toString(arr));
check(arr, toCheckValue);
}
}
Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true
4)使用 Stream.anyMatch() 方法
boolean anyMatch(Predicate<T> predicate)
T 是输入类型
如果有任何元素,则该函数返回 true , 否则为假。文章来源地址https://www.toymoban.com/news/detail-625655.html
public class T1 {
private static void check(int[] arr, int toCheckValue)
{
// 检查指定元素是否
// 是否存在于数组中
// 使用 anyMatch() 方法
boolean test
= IntStream.of(arr)
.anyMatch(x -> x == toCheckValue);
System.out.println("Is " + toCheckValue
+ " present in the array: " + test);
}
public static void main(String[] args) {
int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
int toCheckValue = 7;
System.out.println("Array: "+ Arrays.toString(arr));
check(arr, toCheckValue);
}
}
Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true
到了这里,关于检查值是否存在于 Java 中的数组中的4种详细方法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!