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);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2015-07-10 Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包