存储的元素是无序不重复的
底层结构是哈希表,具有良好的存储和查找性能
HashSet集合没有索引,只能通过迭代器和for增强循环遍历集合
哈希表
常用数组实现,元素根据哈希值计算在哈希表中的存储位置。
如果元素出现哈希冲突(在哈希表存储的位置一样),那么会采用链表挂在元素。
哈希值
哈希值代表对象的某种特征,通常使用int整数表示。
Object类中提供hashCode()方法,可以根据内存地址计算出哈希值。由于每个对象的地址不一样,对应的哈希值也不一样。
Java类可以重写hashCode()方法,自定义哈希值的计算规则。