将地图转换为已排序列表

Sha*_*awn 1 java collections guava

我正在尝试根据中的值将a转换Map为有序.ListMap

假设我有以下内容:

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}
Run Code Online (Sandbox Code Playgroud)

Lou*_*man 8

List<String> list = Ordering.natural().onResultOf(Functions.forMap(map))
   .sortedCopy(map.keySet());
Run Code Online (Sandbox Code Playgroud)

...我认为?

  • @LouisWasserman:这很棒.你让我发现了两个我还没有发现的伟大的番石榴方法.谢谢. (3认同)