黑马程序员技术交流社区

标题: 关于Map集合的三种取出方式 [打印本页]

作者: 繁复    时间: 2015-6-3 10:11
标题: 关于Map集合的三种取出方式
     public static void main(String[] args) {                Map<String, String> map = new HashMap<String, String>();
                map.put("aa", "aaa");
                map.put("bb", "bbb");
                map.put("cc", "ccc");
                map.put("dd", "ddd");
                map.put("ee", "eee");
                map.put("ff", "fff");
                Set<String> keyset = map.keySet();
                // 第一种,直接遍历集合中的key值,通过key取出value值
                for (Iterator it = keyset.iterator(); it.hasNext();) {
                        System.out.println(it.next());
                }
                // 第二种方式 entrySet()
                // entrySet:将键值的关系取出存入到了Set集合中。键值关系有自己的类型就是:Map.Entry。
                // Map.Entry就是一个静态接口Entry
                // 可以通过Map.Entry对象的getKey(),getValue()获取集合中的值
                Set<Map.Entry<String, String>> set = map.entrySet();
                for (Iterator<Map.Entry<String, String>> it = set.iterator(); it
                                .hasNext();) {
                        Map.Entry<String, String> entry = (Map.Entry<String, String>) it
                                        .next();
                        String key = entry.getKey();
                        String value = entry.getValue();
                        System.out.println(key + "...." + value);

                }
                // 第三种取出方式 values()
                Collection<String> con = map.values();
                for (Iterator<String> it = con.iterator(); it.hasNext();) {
                        String name = (String) it.next();
                        System.out.print(name);
                }

        }


作者: 枕寒流    时间: 2015-6-3 10:44
还有第三种?,,,,
作者: 繁复    时间: 2015-6-3 12:14
枕寒流 发表于 2015-6-3 10:44
还有第三种?,,,,

是的呢

作者: 星辉祝愿    时间: 2015-6-3 12:30
学到了,谢谢
作者: 追忆似水年华    时间: 2015-6-3 12:42
学到了,谢谢。

作者: 欧阳文    时间: 2015-6-3 13:49
总结的不错...谢谢
作者: ywang    时间: 2015-6-3 13:53
学习一下!
作者: 景彬    时间: 2015-6-3 14:04
一起学习一下!~
作者: mgyyxhyz    时间: 2015-6-3 14:58
被第三种吸引进来了
作者: as604049322    时间: 2015-6-3 15:12
既然这也算第三种,那就还有第四种:
Set<String> con = map.keySet();
                for (Iterator<String> it = con.iterator(); it.hasNext();) {
                        String key=  it.next();//迭代器上加了泛型,不需要强转
                        String value = map.get(key);
                        System.out.print(key+"="+value);
                }

作者: 繁复    时间: 2015-6-3 15:30
as604049322 发表于 2015-6-3 15:12
既然这也算第三种,那就还有第四种:
Set con = map.keySet();
                for (Iterator it = con.it ...

这个算是第一种
作者: 郝民杰    时间: 2015-6-3 17:10
第三第四种的出现,感觉一下子脑洞大开了。
作者: l598790586    时间: 2015-6-3 18:53
我只有一个问题,请问你map集合中如果有相同的value,这个能取出来吗,map只是说键唯一,没有说值也必须唯一吧
作者: 繁复    时间: 2015-6-3 22:09
l598790586 发表于 2015-6-3 18:53
我只有一个问题,请问你map集合中如果有相同的value,这个能取出来吗,map只是说键唯一,没有说值也必须唯 ...

可以的啊....这和相同value没关系的...吓我一跳  以为遗忘什么了

作者: Animal    时间: 2015-6-3 22:19

总结的不错...谢谢
作者: 银哥    时间: 2015-6-3 22:19
学习一下
作者: tinlen    时间: 2015-6-3 23:28
一起学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2