实现comparable或比较器接口需谨慎,不然JDK自带的方法可能不好使了

在实现Comparable或Comparator接口时需谨慎,错误的compareTo方法可能导致JDK内置的如TreeSet.remove方法失效。例如,将=0和<0的情况错误地合并,将使得在尝试删除对象时失败,因为remove方法依赖于正确的比较结果。了解并遵循比较方法的规范对于确保Java集合操作的正确性至关重要。
摘要由CSDN通过智能技术生成

需求背景:刷题的时候,需求要做排序,并且不能去重,然后写了个 bug。

        所以我用了TreeSet,并且把要排序的内容封装成对象放到集合中,对象实现了compareTo方法。由于我实现的compareTo方法把=0的情况和<0的情况合并了,所以达到了排序且没有去重的效果,但是后面在调用remove方法的时候失败了

        先上一段测试代码:

import java.util.TreeSet;

public class test {
    static class Student implements Comparable{
        public Integer age;
        public String name;

        public Student(Integer age, Strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值