Map和HashMap
2020-02-23 本文已影响0人
surrealtire
Map是用来存储“键(key)-值(value) 对”的。
HashMap采用哈希算法实现,是Map接口最常用的实现类。 由于底层采用了哈希表存储数据,我们要求键不能重复,如果发生重复,新的键值对会替换旧的键值对。 HashMap在查找、删除、修改方面都有非常高的效率。
HashTable类和HashMap用法几乎一样,底层实现几乎一样,只不过HashTable的方法添加了synchronized关键字确保线程同步检查,效率较低。
HashMap: 线程不安全,效率高。允许key或value为null。
HashTable: 线程安全,效率低。不允许key或value为null。
HashMap底层实现采用了哈希表,这是一种非常重要的数据结构。 哈希表的本质就是“数组+链表”。
在HashMap中有一个如下图的:
一个Node<K,V>存储了:
1. hash: 键对象的hash值
2. key:键对象 value:值对象
3. next:下一个节点
即一个Node<K,V>对象就是一个单链表结构。
HashMap即在数据结构中的链地址法。