2013-09-05 9 views
1

순위의 내가 values- 이름 쌍의 목록이 있다고 가정 해 봅시다자바 주문 수확기 컬렉션

A = [ ('john',4), ('doe',7) .... ] 
B = [ ('john',4), ('carmack',2) .....] 
... 

나는 순위가

Combined = [ ('carmack',2),('john',4),('doe',7) ] 
즉, 통합 된 하나의 콜렉션으로 위의 목록을 결합하려는 SQL 측면에서

이 자바에서이 작업을 수행하는 가장 효율적인 방법은 무엇

SELECT * FROM (
     SELECT * FROM A 
     UNION 
     SELECT * FROM B 
     UNION 
     .... 
    ) ORDER BY RANK 

같다, 나는 생각하고 지도에 값을 입력하고 키를 기준으로지도를 정렬하는 것입니다.

+0

당신은'Pair' 객체의'Set'를 찾고 계십니까? –

+0

TreeSet을 사용한 다음 컬렉션에 all()을 추가하면됩니다. –

+0

'TreeMap'을 사용하여 orderingscriterium을 유지하고 double을 제거합니다. 아니면'HashSet'과 이후의 정렬. 두 개의 동일한 키의 경우 어떤 값을 저장할지 결정하는 방법은 무엇입니까? –

답변

4

구체화에 Comparator을 지정하고이 비교자를 기준으로 요소를 정렬 할 수 있도록 TreeMap을 사용하거나 중복을 제외하려면 TreeSet을 사용할 수 있습니다.

출처 : 당신이 TreeMap를 사용하여 키 - 객체에 대한 Comparator이있는 경우 SortedMap Javadocs

0

, 당신의 요소에 allways 정렬됩니다.

당신이 결합 할 경우 2지도 putAll

Map<Integer, String> map3 = new TreeMap<Integer, String>(); 
map3.putAll(map1); 
map3.putAll(map2); 

힌트를 사용 : 정수 비교입니다! 이 같은 귀하의 경우에는

Maps 모양 probalby는 :

TreeMap<Integer, String>