treeset 的 comparator() 方法返回其内部使用的 comparator 对象:自然排序时返回 null,自定义比较器构造时返回该比较器实例;该方法仅读取,不支持修改比较逻辑。

TreeSet 的 comparator 方法直接返回当前集合使用的比较器对象。
comparator() 方法的作用
该方法用于获取 TreeSet 内部用于排序的 Comparator 实例。如果 TreeSet 是用自然排序(即元素实现了 Comparable 接口)构造的,这个方法会返回 null;如果是通过传入自定义 Comparator 构造的,则返回那个 Comparator 对象。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
如何调用 comparator()
只需在 TreeSet 实例上调用 comparator() 方法即可:
- 对于自然排序的 TreeSet:comparator() 返回 null
- 对于带 Comparator 构造的 TreeSet:comparator() 返回你传入的那个 Comparator 实例
示例代码
以下两个常见场景:
// 自然排序(String 实现了 Comparable) TreeSet<string> set1 = new TreeSet(); System.out.println(set1.comparator()); // 输出:null // 自定义比较器(忽略大小写) TreeSet<string> set2 = new TreeSet(String.CASE_INSENSITIVE_ORDER); System.out.println(set2.comparator()); // 输出:java.lang.String$CaseInsensitiveComparator@xxx </string></string>
注意事项
- comparator() 返回的是原始传入的 Comparator 引用,不是副本
- 不能通过该方法修改 TreeSet 的比较逻辑,它只是读取操作
- 如果需要判断是否使用了自定义比较器,可检查返回值是否为 null
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










