HashMap的使用及常见问题

来源:互联网 发布:mac个人收藏添加 编辑:程序博客网 时间:2024/05/29 10:17

先看下面一段代码:
1.

        HashMap<String, String> hMap = new HashMap<>();        hMap.put("CN", "中华人民共和国");        hMap.put("HK", "香港");        hMap.put("TW", "台湾1");        hMap.put("TW", "台湾2");        hMap.put("JP", "日本");        hMap.put("US", "老美");        System.out.println(hMap.keySet());        System.out.println(hMap.values());

这里的输出结果为
[HK, TW, JP, CN, US]
[香港, 台湾2, 日本, 中华人民共和国, 老美]
可以看出来,MAP这种键值对的形式中,

        Iterator<String> iterator = hMap.keySet().iterator();        while(iterator.hasNext()){            String keyString = iterator.next();            System.out.println(keyString);        }        Iterator<String> iterator2 = hMap.values().iterator();        while (iterator2.hasNext()) {            String valueString = iterator2.next();            System.out.println(valueString);        }

结果为:
HK
TW
JP
CN
US
香港
台湾2
日本
中华人民共和国
老美

这样其实并方便查看,若是数据量超大。
2.2
调用entrySet()方法,这个方法返回的是set

        Iterator<Entry<String, String>> iterator = hMap.entrySet().iterator();        while(iterator.hasNext()){            Entry<String, String> e = iterator.next();            System.out.println(e.getKey()+"\t"+e.getValue());            //          System.out.println(e);        }

结果:

HK  香港TW  台湾2JP  日本CN  中华人民共和国US  老美

这样就可以自己修改显示的格式了,就可以获取getKey()、getValue();方法了,是不是很科学啊,(^__^) 嘻嘻

2.3
既然java工程师在设计之初没有使用弄出iterator()方法,说明另有玄机:

        System.out.println(hMap);        System.out.println(hMap.keySet());        System.out.println(hMap.values());

结果为:

{HK=香港, TW=台湾2, JP=日本, CN=中华人民共和国, US=老美}[HK, TW, JP, CN, US][香港, 台湾2, 日本, 中华人民共和国, 老美]

很自然的输出了这样的结果,不过格式固定了,但是至少可以遍历,同时也很清晰。

1 0
原创粉丝点击