java映射要列出的值
我有一个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());
但它以非排序的顺序保存
# 1 楼答案
对从
entrySet
创建的list
进行排序时,不会更改原始Map
中条目的顺序。如果需要排序值的List
,则必须从sortList
方法返回list
map.values()
不会返回排序后的值,因为这些值在Map
中没有按任何特定顺序保存。一些Map
实现(例如TreeMap
)会对键进行排序,但不会对值进行排序# 2 楼答案
首先提取列表,对其进行排序,然后用它创建一个新列表
java-8