java - 将值映射到列表

标签 java list dictionary

我有一个Map<String,Integer>像这样按值排序

  public void sortList(Map<String,Integer> map){
         set = map.entrySet();
        list = new ArrayList<Map.Entry<String, Integer>>(set);
        Collections.sort( list, (o1, o2) -> (o2.getValue()).compareTo( o1.getValue() ));

    }

我需要将所有值复制到新列表

  word_used = new ArrayList<Integer>(map.values());

但它以未排序的顺序保存

最佳答案

当您对从 entrySet 创建的 list 进行排序时,它不会更改原始 Map 中条目的顺序。如果您想要排序值的 List,则必须从 sortList 方法返回 list

map.values() 不会返回排序后的值,因为这些值在 Map 中不按任何特定顺序保存。某些 Map 实现(例如 TreeMap)对键进行排序,但不对值进行排序。

关于java - 将值映射到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448516/

相关文章:

r - 根据向量中的命名属性拆分向量列表

python - 从字典列表中删除重复项

python 将字典数组映射到字典?

Python for 循环优化

java - EC2 JGroups 发现

Java哈希表具有单独的链接冲突解决方案?

c - 在 C 中将矩阵实现为列表时重新排列矩阵行

java - 如何实现不断增长的列表

java - 将 'or' 与姐妹类一起使用时出现 Drools 错误

java - unirest shutdown 退出程序