2014-11-03 8 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

답변

6
Arrays.asList(int[]) 

가 단일 요소 목록을 반환합니다. 한 요소는 int[] 당신은에 통과된다.

당신은 당신이 예상 된 결과를 얻을 수 있습니다

Integer[] outcomes 

에 선언

int[] outcomes 

를 변경하는 경우.

0

두 가지가 코드를 수정해야합니다

  1. 변경 INT [] 정수 [] 루프 befor을 Arrays.asList 이동
  2. (이전 대답 마르코 Topolnik을 sugested로)에. 이제 배열은 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); 
} 
관련 문제