java 有序的Map LinkedHashMap简介

无序的HashMap

我们知道HashMap是无需的,数据并不是按我们插入的顺序排序的,我们可以验证下

public class Test6 {
    public static void main(String[] args) {
        Map<String, String> hashMap = new HashMap<String, String>();
        hashMap.put("name1", "value1");
        hashMap.put("name2", "value2");
        hashMap.put("name3", "value3");
        Set<Entry<String, String>> set = hashMap.entrySet();
        Iterator<Entry<String, String>> iterator = set.iterator();
        while(iterator.hasNext()) {
            Entry<String, String> entry = iterator.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            System.out.println("key:" + key + ", value:" + value);
        }
    }
}

 可以看到输出结果并不是按数据插入的顺序的

key:name3, value:value3
key:name2, value:value2
key:name1, value:value1

有序的LinkedHashMap

要想实现有序的Map,我们可以用LinkedHashMap,下面验证一下,把原来代码的HashMap替换成LinkedHashMap

public class Test6 {
    public static void main(String[] args) {
        Map<String, String> hashMap = new LinkedHashMap<String, String>();
        hashMap.put("name1", "value1");
        hashMap.put("name2", "value2");
        hashMap.put("name3", "value3");
        Set<Entry<String, String>> set = hashMap.entrySet();
        Iterator<Entry<String, String>> iterator = set.iterator();
        while(iterator.hasNext()) {
            Entry<String, String> entry = iterator.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            System.out.println("key:" + key + ", value:" + value);
        }
    }
}

可以看到输出结果为我们插入的顺序 

key:name1, value:value1
key:name2, value:value2
key:name3, value:value3

 

 

 

 

 

 

posted @ 2019-09-06 15:27  野猿新一  阅读(68)  评论(0编辑  收藏  举报