Arrays.asList(...)。包含(...)如何工作?

时间:2012-06-11 12:01:18

标签: java arrays list arraylist

我有以下代码..

    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条件..我不知道我哪里出错了.. 在此先感谢..

5 个答案:

答案 0 :(得分:10)

if条件更改为

if(Arrays.asList(weekEnds).contains(String.valueOf(i))){

或者将数组更改为

Integer[] weekEnds={0,6};

答案 1 :(得分:7)

您正在比较字符串和整数。您的数组包含字符串("0""6"),但您将int传递给比较。

对于整数,该int将为boxed,但Integer(1)不等于"1"

答案 2 :(得分:3)

您正在比较苹果和橙子(在本例中为StringInteger)。

您正在将String数组转换为List。然后,您使用contains()值在int上调用Object。由于该方法将int作为参数类型,因此Integer会自动生成if(Arrays.asList(weekEnds).contains("" + i)) {

为了解决这个问题,请写下:

{{1}}

答案 3 :(得分:3)

你需要一个int数组才能进行这样的比较。

改变这个:

String[] weekEnds={"0","6"};

int[] weekEnds = {0,6};

答案 4 :(得分:0)

只需更改为Integer[] weekEnds={0,6};,我认为它会起作用。