今天看博客,发现有个哥哥写到 HashSet的底层是数组结构,有点懵逼,不是HashMap吗怎么成数组了?
遂去查了下源码:
得以下结论:
HashSet底层是 HashMap,其元素是内部map的key;
所有key所对应的值都是一个静态的Object;
至于HashMap的结构:这是另外一个哥哥写的
数组+链表的结构
HashMap的存取值:
// 存储时:
int hash = key.hashCode();
int index = hash % Entry[].length;
Entry[index] = value;
// 取值时:
int hash = key.hashCode();
int index = hash % Entry[].length;
return Entry[index];