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进行排序。

posted @ 2021-05-15 19:50  南极石  阅读(629)  评论(0)    收藏  举报