java之hashSet和treeSet

73 阅读1分钟

hashSet是是一个无序的去重的集合.这里讲解一下hashSet去重.

hashSet去重原理: 重写了equals和hashCode方法.

image.png 如果hashSet里面存储的是String类或者Integer类,会自动重写equals和hashCOde方法,从而实现自动去重. 而如果里面存储的是别的引用类型或者自定义类,就必须自己重新手写equals和hashCode方法,才可以实现去重.

treeSet排序:

(1)Comparator 第一步: 自定义一类,实现Comparator接口,重写compare方法

image.png 第二步: 在实例化一个treeSet类的时候进行有参传递,把第一步自定义类传递进去.

image.png

(2)Comparable

只需要把treeSet里面存储的类型实现Comparable类,然后重写CompareTo方法.

image.png 图中treeSet存储Student对象,所以Student类需要实现Comparable接口,并且重写compareTo方法.

treeSet去重: 只需要在排序的对应的方法(compare或者compareTo)判断条件加上==即可,并且返回0;