LinkedHashMap方法解析

2016-06-24 10:11 阅读 2,820 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/1862.html

一.摘要

分析源码的时候,钊林喜欢查看类之间的程序结构,LinkedHashMap继承HashMap,拥有HashMap继承的所有方法和属性,同时是Map的间接实现类,支持所有操作,保证操作是有序的。

LinkedHashMap的实体存放在双向链表,默认遍历的顺序,是键被插入的顺序,重新插入已存在的键不改变原有顺序。如果使用LinkedHashMap三个参数的构造方法,第三个参数accessOrder()被指定为true,迭代的顺序是实体被访问的顺序,putgetputAll操作影响访问的顺序,但在Collection的操作是不影响的。

LinkedHashMap的实现不是同步的,就像HashMap一样,可以参考《HashMap方法解析》。关于插入有序的实例化对象,删除、添加实体的操作被称为结构化的修改,通过putgetputAll访问有序的实例化对象也称为结构化的修改,因为上述方法改变了实体的顺序,相反实体值的改变不属于结构化的修改。

LinkedHashMap方法解析

LinkedHashMap只分析clone方法如何使用,其余方法可以参考《Map接口集合方法解析》。clone()实现Cloneable接口,具体操作如下:

  1. HashMap map = new HashMap();  
  2.         map.put("id"new Integer(123456789));  
  3.         map.put("blog_id"new Integer(6789));  
  4.         map.put("token_id"new Integer(12345));  
  5. HashMap map2=(HashMap) map.clone();  
  6.   
  7.         Set keySet = map.keySet();  
  8.         Iterator iter = keySet.iterator();  
  9.         while (iter.hasNext()) {  
  10.             String key = (String) iter.next();  
  11.             System.out.println(key + "=" + map.get(key));  
  12.         }  
  13.         System.out.println(map.equals(map2));  
关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/1862.html
初学Android Studio项目结构第一课 初学Android Studio项目结构第
生活杂谈之万网域名注册过程详解 生活杂谈之万网域名注册过程详解
如何使用RadioGroup和RadioButton实现FragmentTabHost导航效果? 如何使用RadioGroup和RadioB
TreeMap方法解析 TreeMap方法解析

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情