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

回到顶部