java.util.Set接口 extends Collection接口
Set接口的特点:
- 不允许存储重复的元素。
- 没有索引,没有带索引的方法,也不能使用普通的for循环遍历
java.util.HashSet集合 implement Set接口
HsahSet的特点:
1. 不允许存储重复的元素。
2. 没有索引,没有带索引的方法,也不能使用普通的for循环遍历
3.是一个无序的集合,存储元素和取出元素的顺序可能不一致
4.底层是一个哈希表结构(查询的速度快)
哈希值:是一个十进制整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,不是数据实际存储的物理地址)
在object类中有一个方法可以获取对象的哈希值
int hashCode方法,返回对象的哈希值
Set集合不能存储重复元素的原因:
Set集合在调用add方法时,add方法会调用hashCode方法,和equals方法,判断元素是否重复。
HashSet存储自定义类型元素
set集合存储元素唯一:
存储的元素(String,Interger,…Student,Persons)必须重写hashCode和equals方法
LinkedHashSet集合是一个有序的但不能重复的集合
底层是哈希表(数组+链表/红黑树)+链表:多的链表用来存储元素的存储位置,保证元素是有序的。
可变参数:jdk1.5之后出现的新特性<