java中,HashMap底层数据结构是什么?

2021-03-01 19:45发布

13条回答
十七
2楼 · 2021-03-02 09:18

Hashmap原理详解

存储put方法

查询get方法

Key value

Hashmap不安全,设计扩容

ConcurrentHashMap线程安全

2. 存储原理

Jdk7 数组(查询快,增删慢)+链表(增删快,查询慢)

Jdk8 数组+链表+红黑树(节点>8

 

数组:key value hash(哈希值) next(指针指向下一个链表节点)


image.png

希希
3楼 · 2021-03-02 11:13

Hashmap原理详解

存储put方法

查询get方法

Key value

Hashmap不安全,设计扩容

ConcurrentHashMap线程安全

2. 存储原理

Jdk7 数组(查询快,增删慢)+链表(增删快,查询慢)

Jdk8 数组+链表+红黑树(节点>8

 

数组:key value hash(哈希值) next(指针指向下一个链表节点)


三岁奶猫
4楼 · 2021-03-02 13:24

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。

JDK7 数组+链表

JDK8数组+链表+红黑树。当链表长度太长(默认超过8)时,链表就转换为红黑树,利用红黑树快速增删改查的特点提高HashMap的性能

image.png

lucky璐呀
6楼 · 2021-03-04 10:01

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。

梵梵
7楼 · 2021-03-04 10:11

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。

py大白
8楼 · 2021-03-04 16:10

Hashmap原理详解

存储put方法

查询get方法

Key value

Hashmap不安全,设计扩容

ConcurrentHashMap线程安全

2. 存储原理

Jdk7 数组(查询快,增删慢)+链表(增删快,查询慢)

Jdk8 数组+链表+红黑树(节点>8

 

数组:key value hash(哈希值) next(指针指向下一个链表节点)


小小收藏家
9楼 · 2021-03-05 13:45

HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。