1、keySet的for循环方式:
Map<String, String> map = new HashMap<>();
map.put("A","a");
map.put("B","b");
map.put("C","c");
for (String key : map.keySet()) {
String value = map.get(key);
}
2、keySet的iterator迭代器方式:
Map<String, String> map = new HashMap<>();
map.put("A","a");
map.put("B","b");
map.put("C","c");
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next();
String value = map.get(iterator.next());
}
3、entrySet的for循环方式:
Map<String, String> map = new HashMap<>();
map.put("A","a");
map.put("B","b");
map.put("C","c");
for (Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
}
4、entrySet的iterator迭代器方式:
Map<String, String> map = new HashMap<>();
map.put("A","a");
map.put("B","b");
map.put("C","c");
Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next().getKey();
String value = iterator.next().getValue();
}
总结:
- entrySet的方式整体都是比keySet方式要高一些;
- 单纯的获取key来说,两者的差别并不大,但是如果要获取value,还是entrySet的效率会更好,因为keySet需要从map中再次根据key获取value,而entrySet一次都全部获取出来;
- iterator的迭代器方式比foreach的效率高。