美文网首页java基础
Java LinkedHashMap

Java LinkedHashMap

作者: 韭菜待收割 | 来源:发表于2018-09-28 14:35 被阅读4次

    1、LinkedHashMap

    一个有序的Map接口实现,可以按插入顺序或访问顺序排列。跟HashMap类似,允许null key和null值,内部维护着一个Entry数组,如果有Hash冲突会形成单链表,Entry内还多了2个before和after属性,维护着一个双向链表。

    public class MainTest {
    
        public static void main(String[] args) {
            //默认情况下LinkedHashMap的遍历模式是插入顺序
            LinkedHashMap<String, String> map = new LinkedHashMap<>();
            map.put("name", "xmy");
            map.put("age", "18");
            map.put("job", "做白日梦");
            map.put("good at", "吹牛B");
            map.get("job");
            System.out.println("----------按插入顺序遍历----------");
            Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
            while (iterator.hasNext()) {
                Map.Entry<String, String> next = iterator.next();
                System.out.println("key:" + next.getKey() + ";value=" + next.getValue());
            }
            System.out.println("----------按插入顺序遍历----------");
    
            System.out.println("----------按get读取顺序遍历----------");
            //get读取顺序  false表示的是插入模式
            LinkedHashMap<String, String> redMap = new LinkedHashMap<>(16, 0.75f, true);
            redMap.put("name", "xmy");
            redMap.put("age", "18");
            redMap.put("job", "做白日梦");
            redMap.put("good at", "吹牛B");
            //get()方法调用,导致对应的entry移动到双向链表的最后位置  
            redMap.get("job");
            Iterator<Map.Entry<String, String>> iterator2 = redMap.entrySet().iterator();
            while (iterator2.hasNext()) {
                Map.Entry<String, String> next = iterator2.next();
                System.out.println("key:" + next.getKey() + ";value=" + next.getValue());
            }
            System.out.println("----------按get读取顺序遍历----------");
        }
    
    }
    

    相关文章

      网友评论

        本文标题:Java LinkedHashMap

        本文链接:https://www.haomeiwen.com/subject/nfkpoftx.html