Java中map的九种遍历方法
1. 通过for和map.entrySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
for(Map.Entry<Integer,Integer> entry : map.entrySet()){
System.out.println("Key:"+entry.getKey()+",Value:"+entry.getValue());
}
}
2. 通过for,iterator和map.entrySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
for(Iterator<Map.Entry<Integer,Integer>> entries = map.entrySet().iterator();entries.hasNext();){
Map.Entry<Integer,Integer> entry = entries.next();
System.out.println("Key:"+entry.getKey()+",Value:"+entry.getValue());
}
}
3. 通过while,Iterator和map.entrySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
Iterator<Map.Entry<Integer,Integer>> entries = map.entrySet().iterator();
while(entries.hasNext()){
Map.Entry<Integer,Integer> entry = entries.next();
System.out.println("Key:"+entry.getKey()+",Value:"+entry.getValue());
}
}
4. 通过for和map.keySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
for(Integer key : map.keySet()){
System.out.println("Key:"+key+",Value:"+map.getKey());
}
}
5. 通过for,Iterator和map.keySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
for(Iterator<Integer> key = map.keySet().iterator(); key.hasNext();){
System.out.println("Key:"+key.next()+",Value:"+map.get(key.next()));
}
}
6. 通过while,Iterator和map.keySet()遍历
public void ergodicMap(Map<Integer,Integer> map){
Iterator<Integer> key = map.keySet().iterator();
while(key.hasNext()){
System.out.println("Key:"+key.next()+",Value:"+map.get(key.next()));
}
}
java8的遍历方式
7. 通过map.forEach()遍历
JDK中的forEach方法,使用率比较高。
public void ergodicMap(Map<Integer,Integer> map){
map.forEach((key,value) -> {
System.out.println("Key:"+key+",Value:"+value);
})
}
8. Stream遍历
public void ergodicMap(Map<Integer,Integer> map){
long sum = map.entrySet().stream().mapToLong(e -> e.getKey() + e.getValue)).sum();
System.out.println(sum);
}
9. parallelStream遍历
public void ergodicMap(Map<Integer,Integer> map){
long sum = map.entrySet().parallelStream().mapToLong(e -> e.getKey() + e.getValue)).sum();
System.out.println(sum);
}