set集合

1,hashset在jdk1.8及以上在底层做了一定修改,
存入数据时不管是否有序使用迭代器取数据时数据会按默认的规则排序后输出
set集合
set集合

2,Hashset哈希表存储数据时会生成一个hashCode值,相当于数据在hash表坐标
如果hashCode值相等,会判断equals是否为true,
如果hashCode值不同,那么不会调用equals ,来自动完成去重复;

set集合
TreeSet中有一个Comparable接口使添加的元素自身具备排序规则,这种排序又被称为自然排序(但是元素不能是对象否则就会报java.lang.ClassCastException)
set集合

4,Treeset中给对象赋予自然排序规则的时候必须按照以下规则来并且要使用Comparable接口
先判断主要条件,再判断次要条件,不然会出现数据丢失

set集合
5,在Treeset中既要使用自然排序又要使用别的排序规则时 就要使用Comparator接口规则和使用Comparable接口是一样的
set集合
6,TreeSet中有一种特殊的数据结构成为二叉树结构:
这种数据结构已加入数据作为一个节点,将之后插入的数据与节点对比
大于节点的排在右边,小于节点的排在左边,依此类推,数据从左往上排序。