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

"比如我有一个String类型的数组:
public static final String[] VALUES = new String[] {""AB"",""BC"",""CD"",""AE""};
又有变量
String s;
现在我需要检测数组VALUES中是否包含有变量s的值。"

在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<String> set = new HashSet<String>(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<E> 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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
可以使用如下的代码:
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);
对于数组的一些操作,你可以上秒秒学了解相关的知识。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网