天天看點

java集合架構的練習之Map集合以及其内部接口Entry的應用

知識整理:

 1.Map.Entry<K,V>是Map接口的一個内部接口, 而子類Entry<K,V>實作了Map.Entry<K,V>接口.

 2.Map内部包含keySet()、entrySet()等方法, Map沒有疊代器iterator.

 3.Set<Map.Entry<K, Y>> entrySet()方法: 傳回此映射中包含的映射關系的Set視圖. 内部包含getKey(),getValue()等方法。

要求:

  實作Map集合的周遊并輸出鍵和值

分析:

 1.擷取所有鍵值對對象的集合

 2.周遊該鍵值對對象

 3.根據鍵值對對象擷取鍵和值

代碼實作:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Map_Entry {

    public static void main(String[] args) {
    
        /*輸入鍵值對資料*/
    
        Map<String, Integer> map = new HashMap<>();
        
        //方法一
        map.put("aaa", 111);
        map.put("bbb", 222);
        map.put("ccc", 333);
        map.put("ddd", 444);
        
        //方法二
        Scanner input = new Scanner(System.in);
        System.out.println("please input data as 'key, value':");
        
        while (input.hasNext()) {       //  ctrl + z   ==>   停止錄入
            String line = input.nextLine();
            String[] arr = line.split(", ");        //用', '對字元串line進行分割,分割結果以arr[]類型存儲
            String key = arr[0];
            Integer value = Integer.valueOf(arr[1]);       //将String類型的value值封裝成Integer類型
            map.put(key, value);
        }
        
        input.close();
        
        
        
        /*根據鍵值對對象擷取鍵和值*/
        
        Set<Map.Entry<String, Integer>> enterSet = map.entrySet();        // entrySet()方法:傳回此映射中包含的映射關系的Set視圖
        
        //方法一
        for (Map.Entry<String, Integer> entry : enterSet) {
            System.out.println(entry.getKey() + " = " + entry.getValue());
        }
        
        //方法二
        Iterator<Map.Entry<String, Integer>> it = enterSet.iterator();  //擷取疊代器
        
        while (it.hasNext()) {
            Map.Entry<String, Integer> me = it.next();     //擷取每一個Entry對象 父類引用指向子類對象
            //Entry<String, Integer> me = it.next();       //直接擷取子類對象
            
            String key = me.getKey();
            Integer value = me.getValue();
            System.out.println(key + " = " + value);
        }
    }

}
           

運作結果

1.直接輸入:

java集合架構的練習之Map集合以及其内部接口Entry的應用

2.鍵盤接收:

java集合架構的練習之Map集合以及其内部接口Entry的應用

查閱相關知識請點選:

https://github.com/striner/javaCode/edit/master/Map&Entry

https://github.com/striner/javaCode