Collection的子接口Set
interface Set extends Collection
- Set的特点:
1.不允许存储重复元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
Set接口的实现类HashSet集合
- HashSet的特点
HashSet implements Set,
1.不允许存储重复元素
2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
3.是一个无序的集合,存储元素和取出元素的顺序有可能不一样
4.底层是个哈希表结构(查询的速度非常快)
哈希表补充:
jdk1.8之前:哈希表是由数组加链表组成
jdk1.8之后:哈希表是由数组加红黑树(提高查询速度)
数组主要对元素进行分组(相同哈希值的元素是一组)
链表/红黑树把相同哈希值(hashCode() 方法,返回对象的的哈希码值。)的数据连接到一起(链表长度超过了八位,就会把链表转换为红黑树)
LinkedHashSet集合的特点
LinkedHashSet extends HashSet
底层是一个哈希表(数组+链表/红黑树)+链表,多了一条链表(记录元素的存储顺序)