TreeMap自然排序和定制排序

package demo02;

import org.junit.Test;

import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;

/**
 * @description: demo02
 * @author: liuyang
 * @create: 2021-09-03 18:33
 */
public class Demo02 {
    /**
     * TreeMap的key的类型必须都是相同的
     */
    @Test
    public void test1() {
        /**
         * 自然排序,按照key排序,key必须实现Comparable接口
         */
        Map<String, String> map = new TreeMap();
        map.put("DDD", "aaaa");
        map.put("CCC", "bbb");
        map.put("AAA", "aaa");
        map.forEach((key, value) -> {
            System.out.println(key);
            System.out.println(value);
        });
    }

    @Test
    public void test2() {
        /**
         * 定制排序,同样是按照key排序
         */
        Map<String, String> map = new TreeMap(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                // 按照key降序排序
                return o2.compareTo(o1);
            }
        });
        map.put("DDD", "aaaa");
        map.put("CCC", "bbb");
        map.put("AAA", "aaa");
        map.forEach((key, value) -> {
            System.out.println(key);
            System.out.println(value);
        });
    }
}

 

posted @ 2021-09-03 18:49  牛牛的自留地  阅读(301)  评论(0编辑  收藏  举报