java Set集合中哈希表数据结构

在java的Set集合中hashSet在jdk1.8之前的哈希表是数组+链表,在1.8之后值数组+链表/红黑树,由链表变为红黑树的阀值是8,大于等于8时变为红黑树,其目的就是为了查询快

1. 哈希表基本结构
哈希表由数组和链表/红黑树组成,在数组中,存储的是存储数据的hashCode值,相同的值放在同一个数组中,然后比较equals值,如果相同就不存储,不同就通过链表向下增加,这就是不可重复性当查询的时候会逐个输出链表,相同的在一条链表的数据就会被一起输出,因此会有一个无序性
1.1 数组+链表式的结构如下图所示
在这里插入图片描述
1.2 数组+红黑树式的结构如下图所示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Wangdiankun/article/details/115326194