Arrays.asList(…).contains(…)如何工作?
我有以下代码..
String[] weekEnds={"0","6"}; for(int i=0;i<7;i++){ if(Arrays.asList(weekEnds).contains(i)){ System.out.println("I am in the array"); } }
但它没有进入if条件..我不知道我哪里出错了..谢谢你提前..
将if
条件更改为
if(Arrays.asList(weekEnds).contains(String.valueOf(i))){
或者将数组更改为
Integer[] weekEnds={0,6};
你正在比较字符串和整数。 您的数组包含字符串( "0"
, "6"
),但您将int传递给比较。
该int将被装箱为整数,但Integer(1)
不等于"1"
您正在比较苹果和橙子(在本例中为String
s和Integer
)。
您正在将一个String
数组转换为List
。 然后用int
值调用contains()
。 因为该方法将Object
作为参数类型,所以int
将自动装箱到Integer
。
为了解决这个问题,请写:
if(Arrays.asList(weekEnds).contains("" + i)) {
你需要有一个int数组才能进行这样的比较。
改变这个:
String[] weekEnds={"0","6"};
至
int[] weekEnds = {0,6};
只需更改为Integer[] weekEnds={0,6};
我想,它会起作用。