检查Integer是否在Array Java中不返回预期值

时间:2014-11-03 13:40:07

标签: java arrays

我在网上查了很多地方,似乎都给了我相同的解决方案。所以很明显我犯了一些我看不到的愚蠢错误。有人可以指出我正确的方向。谢谢一家工厂。

这是我的代码:

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.

2 个答案:

答案 0 :(得分:6)

Arrays.asList(int[])

返回单个元素列表。一个元素是您传入的int[]

如果您更改声明

int[] outcomes

Integer[] outcomes

您将获得预期的结果。

答案 1 :(得分:0)

您的代码中应该纠正两件事:

  1. 将int []更改为Integer [](在上一个答案中为sugoted Marko Topolnik)
  2. 移动Arrays.asList forfor循环。现在数组被转换为列表6次。
  3. 此更改后的代码如下所示:

    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);
    }