底层数据结构是哈希表
存取没有顺序
不可以存储重复元素
由于没有索引不能使用for循环遍历
HashSet集合存储自定义类型元素想要实现元素的唯一就必须重写hashCode和equals方法
哈希表结构
JDK8以前是数组+链表组成
JDK8以后进行了优化
当一个节点下面的链接个数少于8个还是数组+链表
当一个节点下面的链接个数多于8个改为数组+红黑树
哈希值
哈希值是根据对象的地址或字符串或数字计算出来的int类型的数值
同一个对象多次调用hashCode方法返回的哈希值是相同的
默认情况下不同对象的哈希值是不同的,重写hash Code方法可以让不同对象的哈希值相同



