java TreeSet是如何添加不重复元素的

java TreeSet是如何添加不重复元素的

compare()方法很重要。
TreeSet指定了比较器,或对象实现了Comparable接口时。实际上找的是compare方法。与equals无关。

public class TimeComparator implements Comparator<Node> {

    //时间从小到大排序
    @Override
    public int compare(Node o1, Node o2) {
        if(o1.equals(o2)){
            return 0;
        }
        if (o1.getData().getTime() - o2.getData().getTime() < 0) {
            return -1;
        } else if (o1.getData().getTime() - o2.getData().getTime() > 0) {
            return 1;
        }else{
            return o1.getName().compareTo(o2.getName()); //*1*
        }
        /*比较器return的说明:一定不能在else中return -1,1等确定的值。会当成return 0处理。表示相等,不再循环找*/
    }
}

说明:*1*行中,一定不能return-1,1,也不能return 0。如果确实除了前边的是相等的,那就return 0.
在set放元素时,是一个循环比较的过程,一旦有一个相等,就不再比较

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值