Map使用方法-高效遍歷

一、Map 是一種鍵-值對(key-value)集合,用於保存具有映射關係的數據

用法

Map<Object,Object> map = new HashMap<>();
map.put("hello", "hello");
map.put("world","world");
map.put("world","world1");  
//注意,Map的鍵不能重複,只能存儲一個,存儲的是map.put("world","world1");  

二、獲取key,value

  • entrySet() 獲取Map中key的集合,返回Set類型(注意:Set 集合中的元素是不可重複的,與Map中的鍵不可重複一樣,因此返回Set集合)
1. 獲取Map中key的集合
Set set = map.entrySet();
  • values() 獲取Map中value數據,返回Collection集合
2. 獲取Map中value的集合
Collection collet = map.values();

三、遍歷Map的三種方式

  • 1.先獲取鍵的Set集合,然後根據鍵去取值。不推薦,效率低
Set set = map.keySet();
for (Iterator iterator = set.iterator(); iterator.hasNext();){
//先獲取鍵的Set,然後根據鍵去取值
    Object key = iterator.next();
    String value = (String)map.get(key);
    System.out.println(key + " =" + value);
}

  • 2.先獲取鍵的Set集合,通過迭代器獲取每個元素,直接獲取Map.Entry 類型元素
    (注:Map(key,value) 就是Map.Entry類型的)【推薦,高效】
HashMap map = new HashMap();
map.put("a","aa");
map.put("b","bb");
map.put("c","cc");

Set set = map.entrySet();
for (Iterator iterator = set.iterator(); iterator.hasNext();){
//直接獲取Map.Entry 
    Map.Entry obj = (Map.Entry) iterator.next();
    System.out.println(obj.getKey());
    System.out.println(obj.getValue());
}

  • 3.使用增強的for循環,獲取Map.Entry類型元素。【推薦,高效】
Map<String, String> map = new HashMap<String, String>();
map.put("Java入門教程", "http://c.biancheng.net/java/");
map.put("C語言入門教程", "http://c.biancheng.net/c/");

for (Map.Entry<String, String> entry : map.entrySet()) {
    String mapKey = entry.getKey();
    String mapValue = entry.getValue();
    System.out.println(mapKey + ":" + mapValue);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章