Map的遍历方式

来源:互联网 发布:测试端口是否通 linux 编辑:程序博客网 时间:2024/05/21 08:49
    Map<String, String> map = new LinkedHashMap<String, String>();
        map.put("1", "aaa");
        map.put("2", "bbb");
        map.put("3", "ccc");

        // 传统方式一
        Set<String> set1 = map.keySet();
        Iterator<String> it1 = set1.iterator();

        while (it1.hasNext()) {
            String key = it1.next();
            String value = map.get(key);
            System.out.println(key + ":" + value);
        }

        // 传统方式二
        Set<Map.Entry<String, String>> set2 = map.entrySet();
        Iterator<Map.Entry<String, String>> it2 = set2.iterator();
        while (it2.hasNext()) {
            Map.Entry<String, String> entry = it2.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + ":" + value);

        }

 需要注意:

1.  Map<String, String> map = new LinkedHashMap<String, String>();

这里Map实例化的是LinkedHashMap,而不是HashMap.

原因:HashMap的底层是哈希算法,遍历此Map中的数据时,输出数据的顺序与输入数据的顺序不能够保持一致.

    而LinkedHashMap的底层是链表,它能够保证数据的输出顺序与输入顺序保持一致,故用LinkedHashMap.

在实际开发中,是需要保证数据的输入与输出顺序一致的.



原创粉丝点击