2011-04-20 9 views
1

matrix라는 2D 배열로 작업하고 있습니다. 배열의 고유 한 요소를 검색해야합니다.매트릭스의 고유 요소 찾기

무기 호 ABCGF
Y1 A1 B2 C1 G1 F1
Y2 A1 B1 C2 G2 F1
Y3 A2 B1 C2 G1 F2
Y4 A1 B2 C2 G2 F1
Y5 A2 B2 C1 G1 F2

예를 들어, A 열에 대해서는 a1과 a2를 얻어야합니다. B의 경우 b1과 b2 등.

나는 다른 것을 시도했지만 지금까지 아무 것도 작용하지 않았습니다.

[닐, A, B, C, G, F] [Y1, A1, B2, C1, G1, F1을 :

여기
public void UniqueElement(String line){ 

     List tempList = Arrays.asList(line); 

     Set set = new HashSet(tempList); 
     System.out.println(""); 
     System.out.printf("%s", set); 

    }//UniqueElement Method 

내가 무엇을 얻을 : 여기에 함께 넣어 무엇 ] 는 [Y2, A1, B1, C2, G2, F1] [Y3, A2, B1, C2, G1, F2] [Y4, A1, B2, C2, G2, F1]

누군가 제안 수 내 매트릭스에서 고유 항목을 하나씩 추출하려고하는 또 다른 접근법은 무엇입니까?

감사

답변

0

당신은 중첩 된 foreach 루프를하고 배열의 요소를 걸을 수 있습니다. 가서 "새"또는 ​​보이지 않는 요소를 목록에 저장하십시오. 요소를 본 적이 있는지 여부를 결정하려면 매번 목록을 살펴본 다음 일치하는 항목이 있으면 다음 배열 요소로 이동하십시오. 그렇지 않으면 (일치하지 않음) 요소를 목록에 추가하고 다음 배열 요소로 이동합니다.

이 알고리즘은 매우 무차별 적이며 잘 확장되지 않지만 에 고유 한 요소 목록을 제공합니다.

0

메모리를 절약 할 수있는 경우 ... 각 항목을 반복하고 키를 사용하여 키를 찾을 때마다 값을 증가시킵니다. 일단 끝나면 Map을 반복하여 값이 1 인 키를 출력합니다.

실제로 유일성 만 신경 쓰므로 부울을 값으로 사용할 수 있습니다. true = 고유, false = 고유하지 않음