2013-04-19 2 views
2

내가 HashSet의에 배열 (temp_X)을 가하고 싶은 유일한 것은,하지만 난 HashSet에 대한 오류 가지고 : HashSet에 대한 찾을 수 없습니다 적합 생성자 (목록)HashSet의 컴파일 오류

public PSResidualReduction(int Xdisc[][], double[][] pat_cand, int k) { 

     for (int i = 0; i < Xdisc.length; i++) { 
      int[] temp_X; 
      temp_X = new int[Xdisc[0].length]; 
      for (int s = 0; s < Xdisc[0].length; s++) { 
       temp_X[s] = Xdisc[i][s]; 
      } 
      HashSet<Integer> temp_XList = new HashSet<Integer>(Arrays.asList(temp_X)); 
     } 

    } 

하나를 어떻게 고칠 수 있을지 생각해?

답변

2

Arrays#asList은 사용 된 모든 요소가 프리미티브가 아닌 Object 유형이어야 함을 의미하는 유형 배열을 허용합니다. Arrays.asList(temp_X);temp_X에서

HashSet<Integer> temp_XList = new HashSet<Integer>(Arrays.asList(temp_X)); 
+0

완벽한 아이디어! 감사합니다. – MTT

+0

@Vahid Reimeus는 당신이'HashSet'을 사용하지 말 것을 제안하지 않습니다. 그는'temp_X'를'int []'에서'Integer []'로 바꿀 것을 제안합니다. 또는'temp_X'를'List '으로 변경하십시오. –

+0

네, 맞습니다. 전에 솔루션을 완전히 읽지 않았습니다. – MTT

1

는 객체 배열이 아닌 원시 형 배열해야합니다 :이 Arrays#asList는 래퍼 클래스에 사용 할 수 있습니다

Integer[] temp_X; 

:

는 대신 Integer 배열을 사용하여 . 그리고 HashSet<T>은 기본 유형을 지원하지 않습니다. temp_X의 각 int를 Integer으로 변환하고 하나씩 temp_xList에 추가해야합니다.