【问题标题】:Convert Map to Sorted List将地图转换为排序列表
【发布时间】:2012-11-01 20:50:42
【问题描述】:

我正在尝试根据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}

【问题讨论】:

  • 我想按整数值排序 - desc 或 asc。我会说得更清楚
  • @BlueBullet 问题清楚地表明他想按 排序,即整数。

标签: java collections guava


【解决方案1】:
List<String> list = Ordering.natural().onResultOf(Functions.forMap(map))
   .sortedCopy(map.keySet());

...我想?

【讨论】:

  • 这个顺序是怎么根据值来的?
  • 我意识到这不是根据价值订购的......然后人们无论如何都对我投了两次赞成票。但现在修复了。
  • @LouisWasserman:这很棒。你让我发现了两种我还没有发现的很棒的番石榴方法。谢谢。
  • 我的意思是,我仍然希望我们在 this more general Guava issue 上取得更多进展,但是如果您只关心键,那么这段代码就足够了。
  • 这很漂亮——我会试试看
猜你喜欢
  • 2011-09-13
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 2010-11-02
相关资源
最近更新 更多