我总结成如下表:
| 序号 | 方法 | 说明 |
|---|---|---|
| 1 | map.keySet() | 获取map所有键的集合,然后根据键获取值 |
| 2 | map.values() | 获取map所有值的集合 |
| 3 | map.entrySet() | 获取map键值对的对象entry,然后根据entry.getKey(),entry.getValue()获取键和值 |
| 4 | map.entrySet().iterator() | 获取map键值对象的迭代器对象iterator,然后遍历map,和上一种方式类似 |
| 5 | map.forEach() | java1.8新特性 |
上面五种方式的示例代码如下:
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"张三");
map.put(2,"李四");
map.put(3,"王五");
//第一种方法 foreach map.keySet()遍历
System.out.println("第一种方式");
for (int key:map.keySet()){
System.out.println(map.get(key));
}
//第二种方法 foreach map.values()
System.out.println("第二种方式");
for(String value:map.values()){
System.out.println(value);
}
//第三种方法 foreach map.entrySet()
System.out.println("第三种方式");
for (Map.Entry<Integer,String> entry:map.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
//第四种方式 map.entrySet().iterator()
System.out.println("第四种方式");
Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
//第五种方式 java8新出 map.forEach()
System.out.println("第五种方式");
map.forEach((key,value)->{
System.out.println(key+":"+value);
});
}
运行结果:
第一种方式
张三
李四
王五
第二种方式
张三
李四
王五
第三种方式
1:张三
2:李四
3:王五
第四种方式
1:张三
2:李四
3:王五
第五种方式
1:张三
2:李四
3:王五
本文介绍了Java中Map数据结构的五种遍历方式:keySet()获取键,values()获取值,entrySet()遍历键值对,迭代器和Java1.8新增的forEach()方法,通过示例展示了它们的使用和输出结果。

8235

被折叠的 条评论
为什么被折叠?



