2012-11-01 98 views
1

我试图根据Map中的值将Map转换为有序List将地图转换为排序列表

假设我有以下几点:

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

我意识到,没有根据价值订购......然后无论如何人们都赞扬了我两次。但是现在修好了。 –

+3

@LouisWasserman:这太好了。你让我发现了我还没有发现的两种伟大的番石榴方法。谢谢。 –