java - 将 HashMap 的键保存到按 Java 中的 HashMaps 值排序的 ArrayList

标签 java sorting arraylist hashmap

我有一个 HashMap<String, Float>里面充满了几个条目。 我想将 HashMap 的键保存到 ArrayList<String> 中,而是根据HashMap对应的值对这个ArrayList进行排序。

有没有比对 HashMap 进行排序,然后使用更好的解决方案

ArrayList<String> sortedKeys = new ArrayList<String>(myHashmap.keySet());

顺便一提,我一开始并不一定要使用 HashMap,但是值设置了顺序,我不想交换键和值,因为 float 可能会改变几次。

最佳答案

您可以使用流 API:

List<String> sortedKeys = myMap.entrySet()
                       .stream()
                       .sorted(Map.Entry.comparingByValue())
                       .map(Map.Entry::getKey)
                       .collect(Collectors.toCollection(ArrayList::new));

关于java - 将 HashMap 的键保存到按 Java 中的 HashMaps 值排序的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440146/

相关文章:

java - 使用 Maven 构建后,Eclipse 中缺少库

Java GUI 菜单栏不显示

python-3.x - 如何根据特定列对列表字典进行排序?

java - 在 do-while 循环中清除列表

java - 使用工厂方法理解像 JDBC 这样的服务提供者框架背后的概念

java - 运行 etherpad 本地副本时出现问题

java - 2个未排序数组的合并排序

c - 使用 C 合并 k 个排序数组

java - 不安全的操作...使用 -Xlint :unchecked. 重新编译..我似乎无法理解为什么该操作不安全

java - 嵌套 ArrayList 到单维