HashMap类这个容器是不是不能用foreach直接遍历?

来源:5-3 学生选课---删除 Map 中的学生

Edward_Xie

2016-08-09 11:22

HashMap类这个容器是不是不能用foreach直接遍历?

因为看到老师打的testentryset()里头先用一个set<entry<string,student>>容器保存了students里的键值对,然后再遍历他,我想能不能直接遍历students这个容器?

写回答 关注

3回答

  • 带着天使反上帝
    2016-08-09 20:49:37
    已采纳
    for(Map.Entry<String,Student> entry  : students.entrySet() ){
    
    }

    Edward...

    解决问题了,非常感谢!

    2016-08-10 08:52:51

    共 1 条回复 >

  • 小竹摇曳
    2016-08-09 19:16:14

    迭代器实现了Iterable接口则允许对象成为“foreach”语句的目标,类集接口Collection是Iterable的子接口,而映射Map并没有。

  • 小竹摇曳
    2016-08-09 15:48:10

    可以直接遍历,两种遍历的思路不一样,第一个是通过keySet()方法获得一个键的集合,再通过键获得值(学生对象)。

    第二种方法是获得键值对的集合,这样从集合中取得每一个对象获取键,获取值就可以了。

    我感觉这两种方式其实都算直接遍历,因为集合中的内容不是一个值而是一对值,为了保证键和值对应你不能直接取键再取值,有可能不对应。

    Edward...

    我直接遍历的话打了如下代码: public void testEntrySet3(){ for(Entry<String, Student>entry:students){ } } students这里编译报错,提示只能通过 java.lang.Iterable 的数组或实例进行迭代 这是怎么回事?

    2016-08-09 16:08:23

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409769 学习 · 4543 问题

查看课程

相似问题