1. HashMap概述:

  HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

2. HashMap的数据结构:

  在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表的数组”的数据结构,每个元素存放链表头结点的数组,即数组和链表的结合体。

转:深入Java集合学习系列:HashMap的实现原理

  从上图中可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。源码如下:

转:深入Java集合学习系列:HashMap的实现原理
/**
 * The table, resized as necessary. Length MUST Always be a power of two.
 */
transient Entry[] table;

static class Entry<K,V> implements Map.Entry<K,V> {
    final K key;
    V value;
    Entry<K,V> next;
    final int hash;
    ……
}
转:深入Java集合学习系列:HashMap的实现原理

相关文章:

  • 2022-02-16
  • 2021-12-01
  • 2021-11-17
  • 2021-11-11
  • 2021-11-22
  • 2021-11-14
猜你喜欢
  • 2021-07-20
  • 2021-08-15
  • 2021-10-14
  • 2021-07-19
相关资源
相似解决方案