java - 我是否可以通过任何方式重写 Integer 和 String 类的 equals/compare 方法?

标签 java collections java-8

要自定义 TreeSet 中元素的排序,我必须执行以下操作

  1. 实现类似的接口(interface)
  2. 重写该元素类中的compareTo方法

同样,有什么方法可以对 String 类和 Integer 类执行相同的操作吗?

最佳答案

TreeSet 接收一个 Comparator,因此您可以定义不同的比较方法,例如我想根据字符串的第二个字符对字符串进行排序

TreeSet<String> treeSet = new TreeSet<>(Comparator.comparing(a -> a.substring(1, 2)));
treeSet.add("avec");
treeSet.add("ipsum");
treeSet.add("lorem");

将打印

[lorem, ipsum, avec]

关于java - 我是否可以通过任何方式重写 Integer 和 String 类的 equals/compare 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55771292/

相关文章:

java-native-interface - jdk1.0 为何缺乏原生代码和 Java 代码之间的清晰分离?

java - 跟踪 Swing 组件的正确方法是什么?

java - Java 静态方法可以可视化为 python 中的函数 + 具有相同名称(作为函数)的实例方法吗?

java - 如何检查 String[] 索引是否存在?

java - 实现几个签名冲突的接口(interface)

java - SortedMultiset 返回对象集合(不仅仅是对象计数)?

java - 无法在通过 GWT-RPC 传递到服务器的 ArrayList 中找到对象

java - HTTPS:如何支持所有SSL/TLS协议(protocol)和密码套件?

java - 在重新设计的 Java SE 8 文档中,具体方法和实例方法有什么区别?

java - 在 IntelliJ Idea 中使用 Maven 依赖项运行 Arquillian 测试