[问答题]
HashMap 的底层数据结构是一个数组加链表(或数组加红黑树,取决于Java版本)。数组的每个槽位(bucket)存储着链表的头节点,链表中的每个节点是一个键值对(Entry),当发生哈希冲突时,新的键值对会以链表的形式存储在相应的槽位。在Java 8及以后版本中,当链表长度超过一定阈值时,链表会转换为红黑树,以优化性能。
发表于 2024-03-18 22:12:45 回复(0)
数组+链表或红黑树;
发表于 2024-03-18 20:23:14 回复(0)
底层数据结构由数组+链表+红黑树组成。 数组初始长度为16,此时是数组加链表的结构,数组存满后,二倍扩容,当数组长度大于64,且链表长度大于8时,结构转化为数组加红黑树。
发表于 2023-10-10 09:44:03 回复(0)
数组+链表+加红黑树。 默认申请的数组长度是16,此时是数组+链表结构。 当数组的长度大于64,且链表的长度大于8时,由数组加链表结构转换为数组加红黑树结构。 数组扩容机制,数组长度乘2扩容。 线程不安全,线程安全的集合类由Vector,HashTable,ConcurrentHashMap
发表于 2023-05-15 10:03:07 回复(0)
hashmap是非线程安全的 允许null作为键或值 键值对的形式 可以自定义hash函数来添加数据 entry实体类型存储键值对
发表于 2023-04-22 14:23:11 回复(0)