set集合实现去重原理,以及按照自定义方法排序

1,treeSet去重原理:compareTo

可以实现排序及去重:如果compareTo返回0,说明是重复的,返回的是自己的某个属性和另一个对象的某个属性的差值,如果是负数,则往前面排,如果是正数,往后面排;


应用:类实现compareable接口,覆写其compareto方法,根据自己的需要改变其排序及去重规则,比如person类,根据其年龄进行去重和排序


2,hashSet去重原理:1,hashCode 2,equals是否相同
两个方法可以快速生成,hashCode是几个属性的hashCode共同计算的结果

int compareTo(T o) 和指定对象比较
比较此对象与指定对象的顺序。
参数:
o - 要比较的对象。
返回:
当前对象小于对象o:返回负整数
等于 : 0
大于 : 正整数


(基本数据类型的实现类生成的hashCode是其拆箱后的值的比较,跟引用数据类型的规则不同,如Integer类)

 

posted @ 2018-04-02 09:40  因为你,我爱上了那抹蓝  阅读(5520)  评论(0编辑  收藏  举报