1. 程式人生 > 其它 >Java高階_Day07(Map特點、常用方法、遍歷)

Java高階_Day07(Map特點、常用方法、遍歷)

技術標籤:Java高階java

Java高階_Day07(Map特點、常用方法、遍歷)

Map

Map 的典型實現:HashMap LinkedHashMap TreeMap HashTable (Properties)

Map的特點

  1. 與Collection並列的集合
  2. 用於儲存具有對映關係的物件 (對映物件以鍵值對的形式存在 key–value)
  3. 不能包含重複的鍵; 每個鍵可以對映到最多一個值
  4. 鍵不能重複 值可重複
  5. 元素的存取是無序的

數學中的對映 一個x對應一個y 一個y 可以被多個x對映

Map介面中的常用方法

  • 新增:
    在這裡插入圖片描述
    在這裡插入圖片描述
public static void main(String[]
args) { // 建立集合 Map<String, String> map = new HashMap<>(); //新增元素 map.put("1001","張三"); map.put("1002","李四"); map.put("1003","王五"); map.put("1004","王五"); Map<String,String> map1 =
new HashMap<>(); map1.put("20001","AAA"); map1.put("20002","BBB"); map1.put("20003","CCC"); // 輸出集合物件 map.putAll(map1);//將map1中的元素新增到map中 System.out.println(map); }
  • 刪除:
    在這裡插入圖片描述
    在這裡插入圖片描述
public static void main(String[] args) {
    // 建立集合
Map<String, String> map = new HashMap<>(); //新增元素 map.put("1001","張三"); map.put("1002","李四"); map.put("1003","王五"); map.put("1004","王五"); Map<String,String> map1 = new HashMap<>(); map1.put("20001","AAA"); map1.put("20002","BBB"); map1.put("20003","CCC"); // 輸出集合物件 map.putAll(map1);//將map1中的元素新增到map中 //remove map.remove("1001");//根據鍵刪除集合中的鍵值對 boolean b = map.remove("1002","王五");//根據鍵值對刪除map中的鍵值對 但是傳入的鍵值對必須和map中的鍵值對匹配 System.out.println(b); System.out.println(map); }
  • 修改:
    在這裡插入圖片描述
// 修改
  map.replace("1003","admin");//根據鍵修改值
  //這種修改必須保證所修改的鍵值對在map中存在相應的對映關係
  map.replace("1003","admin","adminstrator");
  System.out.println(map);

  • 獲取的方法:

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

public static void main(String[] args) {
    //建立Map集合
    Map<String,String> map = new HashMap<>();
    map.put("郭靖","黃蓉");
    map.put("楊過","小龍女");
    map.put("張無忌","趙敏");
    //通過鍵 獲取值  V  get(Object  key)
    String v1 = map.get("楊過");
    System.out.println(v1);
    // 獲取所有的鍵的Set集合
    Set<String> keySet =  map.keySet();
    for(String str : keySet){
        System.out.println(str);
    }
    //獲取所有的 值的集合  集合是Collection
    Collection<String> values = map.values();
    for (String str : values){
        System.out.println(str);
    }
    System.out.println("----------------------");
    // 獲取所有的 鍵值對的Set集合
    Set<Map.Entry<String,String>>  entrySet = map.entrySet();
    for(Map.Entry<String,String>  entry : entrySet ){
        System.out.println(entry);
    }
}
  • 判斷的方法:
    在這裡插入圖片描述
    在這裡插入圖片描述
//判斷  判斷集合是否為空
System.out.println(map.isEmpty());// 集合中不包含任何的鍵值對  則返回true
System.out.println(map.containsKey("1002"));//判斷集合是否包含某一個key
System.out.println(map.containsValue("admin"));//判斷集合中是否包含某一個值

Map集合的遍歷

  • 方式一:
    獲取Map集合中的鍵集 在使用map所提供的通過鍵獲取值的方式來進行遍歷所有的元素
public static void main(String[] args) {
    //建立Map集合
    Map<String,String> map = new HashMap<>();
    map.put("郭靖","黃蓉");
    map.put("楊過","小龍女");
    map.put("張無忌","趙敏");
  //遍歷方式一:獲取Map集合中的鍵集  在使用map所提供的通過鍵獲取值的方式來進行遍歷所有的元素
    Set<String> keySet = map.keySet();

    for(String key : keySet){
       String value = map.get(key);
        System.out.println(key +"--"+value);
    }
}
  • 方式二:
    藉助於Map.Entry物件
    在這裡插入圖片描述
//方式二
Set<Map.Entry<String,String>> entrySet = map.entrySet();
for(Map.Entry<String,String>  entry : entrySet){
    String key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + " ----" + value);
}

 // 使用迭代器進行迭代 entrySet 
Iterator<Map.Entry<String,String>> iter = entrySet.iterator();
while(iter.hasNext()){
    Map.Entry<String,String> entry = iter.next();
    String key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + " ----" + value);
}