Java 如何判断数组中存在某个值?
boolean[] test1 = new boolean[]{false, true, false};boolean hasTrue = Arrays.asList(test1).contains(true);
为什么这样的写法在Java中得到的是 false 呢?
那我如何判断 test1 数组中包含 true 呢。。。
回答:
test1
是一个数组对象,Arrays.asList(test1)
其实就是将这个数组对象作为一个元素放到了列表中。
你要想使用Arrays.asList
需要数组是非基本数据类型才行。Arrays.asList(new Boolean[]{false, true, false})
基本数据类型的话,直接遍历数组吧。
boolean[] test1 = new boolean[]{false, true, false};boolean isContains = false;
for (int i = 0; i < test1.length; i++) {
if (test1[i]) {
isContains = true;
break;
}
}
回答:
@Test void testTrue(){ {
boolean[] test1 = new boolean[]{false, true, false};
boolean hasTrue = Arrays.asList(test1).contains(true);
assertFalse(hasTrue);
System.out.println("expect 1 = "+Arrays.asList(test1).size());
}
{
Boolean[] test1 = new Boolean[]{false, true, false};
boolean hasTrue = Arrays.asList(test1).contains(true);
assertTrue(hasTrue);
System.out.println("expect 3 = "+Arrays.asList(test1).size());
}
}
Arrays.asList
public static <T> List<T> asList(T... a) { return new ArrayList<>(a);
}
这里面的一个问题是,如果是primitive 类型数组,会当成一个元素放进list.
这个语言上的设计真的容易引起问题啊!
以上是 Java 如何判断数组中存在某个值? 的全部内容, 来源链接: utcz.com/p/944827.html