package com.leo;

import java.util.*;

/**
 * -----Map 双列数据,存储key-value对数据
 * HashMap底层:数组+链表+红黑树
 */
public class MapTest {
    public static void main(String[] args) {
        Map map1 = new HashMap();
        // put()
        map1.put("CC", 123);
        map1.put("DD", 456);
        map1.put(2, 222);
        map1.putAll(map1);
        System.out.println(map1);

        // get()
        System.out.println(map1.get("DD"));

        // remove()
        Object value = map1.remove("CC");
        System.out.println(value);
        System.out.println(map1);

        // clear()
        // map1.clear();
        System.out.println(map1.size());
        // containsKey()
        System.out.println(map1.containsKey("DD"));

        // keySet()  遍历所有的key集
        Set set = map1.keySet();
        Iterator iterator = set.iterator();
        while(iterator.hasNext()) {
            System.out.println(iterator.next());
        }

        // values() 遍历所有的value集
        Collection values = map1.values();
        for(Object obj: values) {
            System.out.println(obj);
        }

        // entrySet() 遍历所有的key-value
        Set set1 = map1.entrySet();
        Iterator iterator1 = set1.iterator();
        while(iterator1.hasNext()) {
            Object obj = iterator1.next();
            Map.Entry entry = (Map.Entry)obj;
            System.out.println(entry.getKey() + "——" + entry.getValue());

        }


    }

}