2014-11-03 59 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); 
}