一.摘要
分析源码的时候,钊林喜欢查看类之间的程序结构,LinkedHashMap继承HashMap,拥有HashMap继承的所有方法和属性,同时是Map的间接实现类,支持所有操作,保证操作是有序的。
LinkedHashMap的实体存放在双向链表,默认遍历的顺序,是键被插入的顺序,重新插入已存在的键不改变原有顺序。如果使用LinkedHashMap三个参数的构造方法,第三个参数accessOrder()被指定为true,迭代的顺序是实体被访问的顺序,put、get和putAll操作影响访问的顺序,但在Collection的操作是不影响的。
LinkedHashMap的实现不是同步的,就像HashMap一样,可以参考《HashMap方法解析》。关于插入有序的实例化对象,删除、添加实体的操作被称为结构化的修改,通过put、get和putAll访问有序的实例化对象也称为结构化的修改,因为上述方法改变了实体的顺序,相反实体值的改变不属于结构化的修改。
LinkedHashMap方法解析
LinkedHashMap只分析clone方法如何使用,其余方法可以参考《Map接口集合方法解析》。clone()实现Cloneable接口,具体操作如下:
- HashMap map = new HashMap();
- map.put("id", new Integer(123456789));
- map.put("blog_id", new Integer(6789));
- map.put("token_id", new Integer(12345));
- HashMap map2=(HashMap) map.clone();
- Set keySet = map.keySet();
- Iterator iter = keySet.iterator();
- while (iter.hasNext()) {
- String key = (String) iter.next();
- System.out.println(key + "=" + map.get(key));
- }
- System.out.println(map.equals(map2));
你可能感兴趣的文章
来源:TeachCourse,
每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/1862.html ,谢谢支持!
转载请注明出处: https://www.teachcourse.cn/1862.html ,谢谢支持!
分类:Java基础
标签:HashMap, Java基础, LinkedHashMap