HashMap的见解随笔
HashMap的节点:
HashMap是一个键值对的集合,其中每个节点用Node<K,V>表示
static class Node<K,V> implements Map.Entry<K,V>{
final int hash;
final K key;
V value;
Node<K,V> next;
}
Node是一个内部类,key为键,value为值,next指向下一个元素,HashMap不是一个单纯的键值对,还包含下一个元素的引用。
HashMap的数据结构:
HashMap的数据结构为:数组 + 链表
数组的特点:查询效率高,插入和删除效率低。
链表的特点:查询效率低,插入和删除效率高。
因此HashMap分别利用了数组和链表的优点,使得查询和插入,删除的效率都很高。
HashMap存储元素以及读取元素的过程:
HashMap<String,Object> hm = new HashMap<String, Object>();
//s221对应张三
hm.put("s221","张三");
//n223对应李四
hm.put("n233","李四");
//通过key值可以获取"张三"
String zhang = hm.get("s221");
参考文献:
Android案例教程
HashMap 详解
注:以上均为自己参考总结,并不详细,只为自己理解参考所用,侵删。