int[] AllCards = {1,2,3,4,5,6,7,8,9,10};
if(Arrays.asList(AllCards).contains(1))
System.out.println("yes");
else {
System.out.println("no");
}
我有这段代码,它只是继续打印no
而不是yes
。有什么问题?
答案 0 :(得分:1)
Integer[] AllCards = {1,2,3,4,5,6,7,8,9,10};
if(Arrays.asList(AllCards).contains(1))
System.out.println("yes");
else {
System.out.println("no");
}
答案 1 :(得分:0)
问题是1
被自动装箱为Integer
而不是int
。
将声明更改为Integer[]
答案 2 :(得分:0)
由于AllCards
是一个int
数组,因此调用Arrays.asList(AllCards)
会返回一个包含单个元素的List,即AllCards
。
如果您不想将AllCards
更改为Integer
数组,可以编写以下内容以测试其是否包含1:
boolean containsOne = Arrays.stream(AllCards).anyMatch(n -> n == 1);
答案 3 :(得分:0)
将:
更改为int
:
Integer
在Java中,' int' type是一个原语,而' Integer' type是一个对象。
这意味着,如果您想将Integer[] AllCards = {1,2,3,4,5,6,7,8,9,10};
if(Arrays.asList(AllCards).contains(1))
System.out.println("yes");
else {
System.out.println("no");
}
转换为array
类型,则需要对象,因为您无法将基元类型保存到List中。