2012-11-01 7 views
1

Map에있는 값을 기준으로 으로 주문하여 Map으로 변환하려고합니다. 가정하자지도를 정렬 된 목록으로 변환

나는 다음과 같은 한 :

Map<String, Integer> map = Maps.newHashMap(); 
map.put("foo", 1); 
map.put("boo", 3); 
map.put("bar", 2); 

//list needs to be sorted by Integer Value -- ASC or DESC 
List<String> list = //Elegant guava call? List should be: {foo, bar, boo} 
+0

정수 값 - desc 또는 asc로 정렬한다고 가정합니다. 내가 더 명확하게 할께. – Shawn

+0

@BlueBullet 질문에 * values ​​*, 즉 정수로 주문하고 싶어한다는 내용이 분명히 나와 있습니다. – Adam

답변

8
List<String> list = Ordering.natural().onResultOf(Functions.forMap(map)) 
    .sortedCopy(map.keySet()); 

... 내 생각?

+0

이 주문은 값에 따라 어떻게됩니까? – Bohemian

+0

나는 값에 따라 명령하지 않았다는 것을 깨달았습니다 ... 그리고 나서 사람들은 저를 두 번 upvoted했습니다. 하지만 이제는 고쳐졌습니다. –

+3

@ 루이스 와서 만 : 대단합니다. 당신은 내가 아직 발견하지 못한 두 가지 훌륭한 구아바 방법을 발견하게했습니다. 감사. –

관련 문제