在java的Set集合中hashSet在jdk1.8之前的哈希表是数组+链表,在1.8之后值数组+链表/红黑树,由链表变为红黑树的阀值是8,大于等于8时变为红黑树,其目的就是为了查询快
1. 哈希表基本结构
哈希表由数组和链表/红黑树组成,在数组中,存储的是存储数据的hashCode值,相同的值放在同一个数组中,然后比较equals值,如果相同就不存储,不同就通过链表向下增加,这就是不可重复性当查询的时候会逐个输出链表,相同的在一条链表的数据就会被一起输出,因此会有一个无序性。
1.1 数组+链表式的结构如下图所示
1.2 数组+红黑树式的结构如下图所示