我是靠谱客的博主 顺心茉莉,最近开发中收集的这篇文章主要介绍LinkedHashMap 访问顺序方式遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

LinkedHashMap 支持两种遍历方式

LinkedHashMap是通过比HashMap多了一个双向链表实现的有序。

1.按照插入顺序遍历

2.按照访问顺序遍历

  按照访问顺序遍历时,每次访问完map中的元素后,会将该元素置入map的最后一位,

  例如:LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>(6,0.75f,true);
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        map.get("c");
        map.get("b");

       此时在map中的元素的顺序是 a,d,c,b

 

   是否使用访问顺序遍历,是通过LinkedHashMap 的accessOrder参数控制的,true为访问顺序遍历,false为插入顺序遍历。

设置该值只能在创建LinkedHashMap 时通过构造方法设置的,LinkedHashMap一共有五个构造方法,只有一个能够设置AccessOrder参数

 

 

注:

    遍历LinkedHashMap时不要使用map.keySet();和map.keySet().iterator();方式遍历,如果使用了这种方式遍历,在遍历过程中如果操作了map会抛出java.util.ConcurrentModificationException异常。原因是,在迭代过程中如果操作了当前的元素,根据LinkedHashMap访问顺序的规则,当前的元素会被放到最后面,当执行下次循环时,就是去获取最后一个元素的后一个元素,所以会报错。

最后

以上就是顺心茉莉为你收集整理的LinkedHashMap 访问顺序方式遍历的全部内容,希望文章能够帮你解决LinkedHashMap 访问顺序方式遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部