今天重学java基础,意外发现HashMap竟然有七种遍历方式
法一:keyset方法
Set<Integer> set = map.keySet();
for (Integer key:set){
System.out.println(key+"----------"+map.get(key));
}
法二:EntrySet方法
Set<Map.Entry<Integer, String>> entries = map.entrySet();
for (Map.Entry<Integer,String> entry:entries){
System.out.println(entry.getKey()+"-------------"+entry.getValue());
}
法三:使用迭代器的keyset
Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()){
Integer key= iterator.next();
System.out.println(key+"-----------"+map.get(key));
}
法四:使用迭代器的EntrySet(效率最高)
Iterator<Map.Entry<Integer, String>> iterator1 = map.entrySet().iterator();
while (iterator1.hasNext()){
Map.Entry<Integer, String> next = iterator1.next();
System.out.println(next.getKey()+"---------------"+next.getValue());
}
法五:使用lambda表达式
map.forEach((key,value) ->{
System.out.println(key+"-----------------"+value);
});
法六:使用Stream API单线程方式
map.entrySet().stream().forEach((integerStringEntry -> {
System.out.println(integerStringEntry.getKey()+"--------------"+integerStringEntry.getValue());
}));
法七:使用Stream API多线程方式
map.entrySet().parallelStream().forEach((integerStringEntry -> {
System.out.println(integerStringEntry.getKey()+"--------------"+integerStringEntry.getValue());
}));