我的目标是给定一个映射,以返回排序键值的升序数组/列表。例如:
输入:包含以下由空格分隔的键/值条目的映射:
"Apple" 10
"Orange" 8
"Kiwi" 15
输出:
{Orange;Apple;Kiwi}
我能想到的唯一其他方法是创建一个 Map<Integer,Set<String>>
然后按相当复杂的键进行排序。我采用了这种方法,但在代码和逻辑方面似乎效率很低。非常感谢!
最佳答案
一种技术是将映射插入列表,然后使用比较器对值进行排序,然后再将其放回到映射中。
例如:
List<Map.Entry<String, Integer>> list =
new LinkedList<Map.Entry<String, Integer>>(mapYouPassedIn.entrySet());
然后您可以使用 Collections.sort() 加上比较器来对此列表执行繁重的工作。
关于java - java中按值对Map进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28163279/