Edward_Xie
2016-08-09 11:22
HashMap类这个容器是不是不能用foreach直接遍历?
因为看到老师打的testentryset()里头先用一个set<entry<string,student>>容器保存了students里的键值对,然后再遍历他,我想能不能直接遍历students这个容器?
for(Map.Entry<String,Student> entry : students.entrySet() ){ }
迭代器实现了Iterable接口则允许对象成为“foreach”语句的目标,类集接口Collection是Iterable的子接口,而映射Map并没有。
可以直接遍历,两种遍历的思路不一样,第一个是通过keySet()方法获得一个键的集合,再通过键获得值(学生对象)。
第二种方法是获得键值对的集合,这样从集合中取得每一个对象获取键,获取值就可以了。
我感觉这两种方式其实都算直接遍历,因为集合中的内容不是一个值而是一对值,为了保证键和值对应你不能直接取键再取值,有可能不对应。
Java入门第三季
409769 学习 · 4543 问题
相似问题