我有一个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/