添加、删除、修改操作:

  • Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
  • void putAll(Map m):将m中的所有key-value对存放到当前map中
  • Object remove(Object key):移除指定key的key-value对,并返回value
  • void clear():清空当前map中的所有数据
  • 修改也由put来体现
public class Test {

    public static void main(String[] args) {
        Map map=new HashMap();
        map=new LinkedHashMap();
        map.put("AA",123);//体现的是添加操作
        map.put(45,123);
        map.put("BB",56);
        map.put("AA",87);//体现出来的是修改

        System.out.println(map);//{AA=87, 45=123, BB=56},输出的格式是:key=value

        Map map1=new HashMap();
        map1.put("CC",123);
        map1.put("DD",123);

        map.putAll(map1);
        System.out.println(map);//{AA=87, 45=123, BB=56, CC=123, DD=123}

        Object obj=map.remove("CC");//返回要移除的键值对的value
        System.out.println(obj);//123
        System.out.println(map);//{AA=87, 45=123, BB=56, DD=123}

        Object obj1=map.remove("CCC");//这个key是不存在的
        System.out.println(obj1);//返回的是null

        map.clear();//clear是清空map中的数据,不等同于map=null
        System.out.println(map);//{}
        System.out.println(map.size());//0
    }


}

元素查询的操作:

  • Object get(Object key):获取指定key对应的value
  • boolean containsKey(Object key):是否包含指定的key
  • boolean containsValue(Object value):是否包含指定的value
  • int size():返回map中key-value对的个数
  • boolean isEmpty():判断当前map是否为空
  • boolean equals(Object obj):判断当前map和参数对象obj是否相等
public class Test {

    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("AA",123);
        map.put(45,123);
        map.put("BB",56);

        System.out.println(map.get(45));//123
        System.out.println(map.get(455));//null,455这个key不存在返回的结果就是null

        boolean isExist = map.containsKey("BB");//containsKey会去找哈希值,再根据哈希值判断数组中的位置,再看谁和它equals,看是不是包含这个key
        System.out.println(isExist);//true

        boolean containsValue = map.containsValue(123);//因为现在有两个123,所以只要找到一个就不会继续往下找了
        System.out.println(containsValue);//true

        map.clear();//把数组元素改成了null,把size改成了0
        System.out.println(map.isEmpty());//true,这个方法如果size为0就会返回true

        //要想equals方法的结果是true,参数也要是Map,同时里面存的数据也要一样
    }
}

元视图操作的方法:

  • Set keySet():返回所有key构成的Set集合
  • Collection values():返回所有value构成的Collection集合
  • Set entrySet():返回所有key-value对构成的Set集合

涉及到如何去遍历Map中的key,value以及key-value
Collection的遍历可以用迭代器,这个时候就没有迭代器了,迭代器是针对Collection来说的,
Map没有iterator方法。但Map是由key和value构成的,所有的key使用Set存储,要想遍历所有key,拿到key的Set,再用Set去iterator即可。value也一样,只要能够拿到所有的value,value的存在形式是Collection,再用Collection去调iterator方法即可,键值对整体构成了一个Set,要拿到所有的Entry构成的Set去iterator也可以

public class Test {

    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("AA",123);
        map.put(45,123);
        map.put("BB",56);

        //遍历所有的key集:keySet()
        Set set = map.keySet();//得到的set是由所有的key构成的,下一步就可以用迭代器了
        Iterator iterator = set.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

        //遍历所有的value集:values()
  //      Collection values = map.values();
//        方式一
//        Iterator iterator1 = values.iterator();
//        while(iterator1.hasNext()){
//            System.out.println(iterator1.next());
//        }

        //方式二
        Collection values = map.values();
        for(Object obj:values){
            System.out.println(obj);
        }

        //遍历输出key和输出value的顺序是一致的,因为底层是Entry或者叫Node,是找到Node以后,如果要key就去拿key,如果拿value就去拿value



        //遍历所有的key-value
        //方式一:entrySet(),返回的是Set,Set中放的是一个一个的Entry
        Set entrySet = map.entrySet();
        Iterator iterator1 = entrySet.iterator();
        while(iterator1.hasNext()){
            Object obj = iterator1.next();//其实这个obj是Entry,可以用Entry进行强制转换
            Map.Entry entry = (Map.Entry) obj;
            //在Entry中有getKey和getValue方法

            System.out.println(entry.getKey()+"-->"+entry.getValue());
        }


        //方式二:用上面涉及到的方法拼凑出来:找到key之后使用get方法可以得到value
        Set keySet =map.keySet();//得到的set是由所有的key构成的,下一步就可以用迭代器了
        Iterator iterator2 = keySet.iterator();
        while(iterator2.hasNext()){
            Object key = iterator2.next();
            Object value = map.get(key);
            System.out.println(key+"-->"+value);
        }

    }

}

总结:
常用方法:
添加:
删除:
修改:
查询:
插入:Map无序,不可能存在插入操作
长度
遍历: