Map的排序和遍历
常见的Map类
HashMap
根据key的HashCode值来存储数据,Key能存储null,但仅仅只能存储一个,多个null会覆盖,线程不安全。无序。
TreeMap
根据Key值进行排序,不允许null,默认升序。
LinkedHashMap
保存插入顺序,key和value均可以为空。
Map 的遍历
Map<String,String> map = new HashMap<String,String>();
map.put("熊大","棕色");
map.put("熊二","黄色");
for(Map.Entry<String,String> entry: map.entrySet()){
String mapKey = entry.getKey();
String mapValue = entry.getValue();
System.out.println(mapKey+":"+mapValue);
}
Map 的排序
对Key进行排序
//方法一
Map<String, String> map = new TreeMap<>(
new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
}
);
对Value进行排序
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
通过这种方式也可以对HashMap进行排序。

浙公网安备 33010602011771号