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}; 我想,它会起作用。