HashMap实现按照key或者value排序

按照key排序、将HashMap中的元素装进TreeMap中即可、TreeMap自带排序功能。直接上代码
按照value排序、需要使用ArrayList来重写compare方法来实现

import java.util.*;
public class Test {

    @org.junit.Test
    public void test01(){
        Map map = new HashMap<>();
        map.put("G", 10);
        map.put("B", 19);
        map.put("C", 13);
        map.put("D", 18);
        map.put("E", 12);

        //按照 value 排序
        List> list = new ArrayList>(
                map.entrySet());
        Collections.sort(list, new Comparator>() {
            @Override
            public int compare(Map.Entry o1,
                               Map.Entry o2) {
                return o2.getValue() - o1.getValue();
            }
        });
        System.out.println(list);//[B=19, D=18, C=13, E=12, G=10]
        //按照 key 排序
        TreeMap treeMap = new TreeMap(map);

        System.out.println(treeMap);//{B=19, C=13, D=18, E=12, G=10}
    }
}

你可能感兴趣的:(HashMap实现按照key或者value排序)