消化吸收HashMap的四种遍历方式。
- keySet()方法
使用map.keySet()获得map集合中的所有key,保存在一个Set集合中。遍历这个Set集合同时通过map.get()方法获取到key对应的value
Set<String> keys = map.keySet();
for( String key:keys){
System.out.println(key+" "+map.get(key));
}
- entrySet()方法
使用map.entrySet()方法获取map集合中的所有键值对,保存在Set集合中。遍历这个集合
Set<Map.Entry<String, Student>> entries = map.entrySet();
for(Map.Entry s:entries){
System.out.println(s.getKey()+" "+s.getValue());
}
阿里开发手册中推荐方式:
- Iterator迭代器方式
通过map.iterator()方法获得一个迭代器,其中迭代的是node < k,v >节点
Iterator<Map.Entry<String, Student>> iterator = entries.iterator();
while(iterator.hasNext()){
Map.Entry<String, Student> next = iterator.next();
System.out.println(next.getKey()+" "+next.getValue());
}
- values()方法
通过map.values()方法获得一个Collection集合,集合中保存所有的值,在此遍历时无法遍历key值
Collection<Student> values = map.values();
for(Student student:values){
System.out.println(student);
}