Java-TreeMap通过value的大小进行排序

package java20210327;

import java.util.*;

public class Main4601 {
    public static void main(String[] args) {
        Map<Character, Integer> map = new TreeMap<>();
        map.put('c', 111);
        map.put('d', 555);
        map.put('b', 666);
        map.put('a', 222);
        //未根据value进行排序,而是利用key的自然排序(字典排序)
        Set<Map.Entry<Character, Integer>> entries = map.entrySet();
        for (Map.Entry<Character, Integer> entry : entries) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
        System.out.println("-------------------");

        //根据map中的value降序排序
        ArrayList<Map.Entry<Character, Integer>> entries1 = new ArrayList<>(map.entrySet());
        entries1.sort(new Comparator<Map.Entry<Character, Integer>>() {
            @Override
            public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                return o2.getValue() - o1.getValue();
            }
        });
        //lambda表达式写法
        //entries1.sort((o1, o2) -> o2.getValue()-o1.getValue());
        for (Map.Entry<Character, Integer> entry : entries1) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
    }
}

a 222
b 666
c 111
d 555
-------------------
b 666
d 555
a 222
c 111
posted @ 2021-03-28 18:05  笨鸟贤妃  阅读(228)  评论(0)    收藏  举报