在Java中,如何检测一个数组中是否包含某一个数据?

2024-11-20 12:22:33
推荐回答(2个)
回答1:

在Java中,检测一个数组是否包含某一个数据,通常有四种方法:

(1)for循环

(2)转换为List,调用Arrays.asList(arr).contains方法

(3)使用Set

(4)使用Arrays.binarySearch()方法

下面为上述四种方法的具体代码实现:

1、使用for循环

public static boolean useLoop(String[] arr, String targetValue) {

for (String s : arr) {

if (s.equals(targetValue))

return true;

}

return false; 

}

2、转换为List,调用Arrays.asList(arr).contains方法

public static boolean useList(String[] arr, String targetValue) {

return Arrays.asList(arr).contains(targetValue);

}

3、使用Set

public static boolean useSet(String[] arr, String targetValue) {

Set set = new HashSet(Arrays.asList(arr));

return set.contains(targetValue);

}

4、使用Arrays.binarySearch()方法

特别说明:binarySearch()二分查找 仅适用于 有序数组,如果不是有序数组,则报异常

public static boolean useArraysBinarySearch(String[] arr, String targetValue) {

int a = Arrays.binarySearch(arr, targetValue);

if (a > 0) {

return true;

} else {

return false;

} }

扩展资料:

Java种List列表的contains方法:

该方法是通过遍历集合中的每一个元素并用equals方法比较是否存在指定的元素。

public boolean contains(Object o) {

Iterator it = iterator();

if (o==null) {

while (it.hasNext())

if (it.next()==null)

return true;

} else {

while (it.hasNext())

if (o.equals(it.next()))

return true;

}

return false;

}

参考资料来源:Java官网-API-Arrays

参考资料来源:Java官网-API-Interface List

回答2:

可以使用如下的代码:
Arrays.asList(yourArray).contains(yourValue)
但这并不适用于基本数据类型的数组。
在Java8之后,你可以使用Stream来检测int,double,long类型的数组是否包含某个数值。(分别用IntStream, DoubleStream和LongStream),例如:
int[] a = {1,2,3,4};
boolean contains = IntStream.of(a).anyMatch(x -> x == 4);
对于数组的一些操作,你可以上秒秒学了解相关的知识。