TreeMap 比较器的理解

TreeMap 比较器:比较的是 key 的顺序。如果 key 是相同的,则 put 时,会将新的value覆盖旧value。
如下示例:
'a' 和 'b' 在比较器定义中被视为“相同”。

    public static void main(String[] args) {
        HashMap<Character,Integer> map = new HashMap();
        map.put('a', 1);
        map.put('b', 1);

        TreeMap<Character, String> treeMap = new TreeMap<>(new Comparator<Character>() {
            @Override
            public int compare(Character o1, Character o2) {
                return map.getOrDefault(o1, 0).compareTo(map.getOrDefault(o2, 0));
            }
        });

        treeMap.put('a', "i am a");
        treeMap.put('b', "i am b");
        //根据 treemap 定义的比较器,  以 treemap 而言,'a' 和 'b' 是同一个元素
        //输出 1
        System.out.println(treeMap.size());
        //输出[a]
        System.out.println(treeMap.keySet());
        //输出 a="i am b", 'a' 被关联了新的 value
        System.out.println(treeMap);
    }
posted @   大熊猫同学  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2015-07-10 Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包
点击右上角即可分享
微信分享提示