1.使用lambda表達式,性能低於遍歷entrySet方式
Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//使用lambda表達式,性能低於遍歷entrySet方式
map.forEach((key, value) ->{
System.out.println("key-value:"+key +"-" + value);
});
2.使用Iterator迭代器遍歷
Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//4.1使用Iterator迭代器遍歷,泛型
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("key-value:" + entry.getKey() + "-"
+ entry.getValue());
}
System.out.println("----------------我是分割線-----------------");
//4.2使用Iterator迭代器遍歷,不使用泛型,需把object強轉爲Map.Entry
Iterator iterator2 = map.entrySet().iterator();
while (iterator2.hasNext()){
Map.Entry entry = (Map.Entry)iterator2.next();
System.out.println("key-value:" + entry.getKey() + "-"
+ entry.getValue());
}
3.使用for循環遍歷keySet方式且僅遍歷鍵key,那麼效率高;同樣使用for循環遍歷values方式且僅遍歷值value,效率高
Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//遍歷keySet,僅遍歷鍵key效率高
for(Integer key : map.keySet()){
System.out.println("key:"+key);
}
//遍歷values,僅遍歷值value效率高
for(String value : map.values()){
System.out.println("value:"+value);
}
4.使用for循環遍歷keySet方式,然後通過key找value,這種方式同時取得鍵和值效率比較低,因爲從鍵key取值value也是需要耗時的
Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//遍歷keySet方式,然後通過key找value
for(Integer key : map.keySet()){
String value = map.get(key);
System.out.println("key-value:" + key +""+ value);
}
5.使用for循環遍歷HashMap的entrySet,此種方式同時獲取鍵和值是最效率的
Map<Integer, String> map = new HashMap<>();
map.put(1, "張三");
map.put(2, "李四");
map.put(3, "王五");
map.put(4, "趙六");
//遍歷entrySet方式
for(Map.Entry entry : map.entrySet()){
System.out.println("key-value:" + entry.getKey() +"-"
+ entry.getValue());
}