首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

集合框架地图学习笔记一LinkedHashMap

2013-03-28 
集合框架map学习笔记一LinkedHashMapMap: 1、HashMap 2、LinkedHashMap 3、IdentityHashMap 4、WeakHashMap 5、

集合框架map学习笔记一LinkedHashMap

Map: 

1、HashMap 

2、LinkedHashMap 

3、IdentityHashMap 

4、WeakHashMap 

5、TreeMap 

6、EnumMap 

7、ConcurrentHashMap 

8、ConcurrentSkipListMap 

今天主要学习的是LinkedHashMap。


1、LinkedHashMap

LinkedHashMap是继承HashMap的一个子类,所有存储的结构也是Entry[],同样是以key的hashCode值来计算key-value所在的Entry[]桶所在的下标。来实现快速的存放和查询。但是LinkedHashMap除了继承父类HashMap的功能以外,解决了HashMap无序的问题。

LinkedHashMap遍历元素的时候,遍历的顺序是以数据的存入的顺序。


2、LinkedHashMap的数据存放

因为LinkedHashMap在HashMap的Entry[]对象中,继承Entry对象扩充了自己的Entry对象能力,增加了before和after属性,使得数据存入以后,成为一个双向链表的形式。因为双向链表的处理,所以LinkedHashMap的数据写入性能没有HashMap高。

LinkedHashMap的数据写入也是调用父类的put方法(已经在HashMap里面介绍了put方法了),而重写了addEntry方法。对于Entry对象的处理,主要在于建立双向链表,使得由header对象开始,与每次加入的对象成为双向链表。

集合框架地图学习笔记一LinkedHashMap

public class TestLinkedHashMap {/** * @param args */public static void main(String[] args) {LinkedHashMap<Integer, String> hm1 = new LinkedHashMap<Integer, String>(16, 0.75f,true);hm1.put(1,"1");hm1.put(2,"2");hm1.put(3,"3");hm1.put(4,"4");hm1.put(5,"5");hm1.get(2);hm1.get(4);hm1.get(3);hm1.get(5);hm1.get(1);Iterator iter1 = hm1.keySet().iterator();while(iter1.hasNext()){System.out.println(iter1.next());}}}

结果为:

2
4
3
5
1

热点排行