2014-11-03 63 views
4

我在網上查了很多地方,似乎都給了我相同的解決方案。所以很明顯,我犯了一些我看不見的愚蠢錯誤。有人可以請我指出正確的方向。感謝一家工廠。檢查整數是否在數組中Java不返回期望值

這是我的代碼:

import java.util.Arrays; 

public class Solution { 
    public static void main(String[] args) { 
     int[] outcomes = {1, 2, 3, 4, 5, 6};   
     int count = 0;  
     for(int y = 1; y<=6; y++){  
      if(Arrays.asList(outcomes).contains(y)){     
       count++;     
       System.out.println("outcomes contains "+ y);     
      }    
     }   
     System.out.println(count); 
    } 

的最終輸出應在6但它是0。

+0

這類似於[這個問題](http://stackoverflow.com/q/2607289/4186297) – rtruszk 2014-11-04 12:05:40

回答

6
Arrays.asList(int[]) 

返回單個元素的列表。在一個元素的int[]您在過去了。

如果更改聲明

int[] outcomes 

Integer[] outcomes 

你會得到預期的結果。

0

兩件事情應該在你的代碼進行修正:

  1. 改變INT []爲Integer [](如在前面的答案sugested馬爾科Topolnik)
  2. 移動Arrays.asList befor for循環。現在數組被轉換爲列表6次。

在這之後改變代碼將如下所示:

public static void main(String[] args) { 

    Integer[] outcomes = {1, 2, 3, 4, 5, 6}; 
    List outcomesList = Arrays.asList(outcomes); 
    int count = 0; 

    for(int y = 1; y<=6; y++){ 
     if(outcomesList.contains(y)){ 
      count++; 
      System.out.println("outcomes contains "+ y); 
     } 
    } 
    System.out.println(count); 
}