Map集合

Map集合是一种双列集合,每个元素包含两个值(键和值)

Map集合的每个元素的格式:key=value(键值对元素),所以也被成为键值对集合

Map集合的完整格式:{key1=value1 ,key2=value2,key3=value3,. .....}

Map集合的体系:

               Map < K , V >(接口,Map集合的祖宗)

TreeMap<K , V >                  HashMap< K , V >(实现类,经典的) ---------------LInkHashMap< K , V >(实现类) 

Map的特点:

  1.Map集合的特点都是由键决定

  2.Map集合键是无序,不重复,无索引的(后面重复的键会覆盖前面的整个元素)

  3.Map集合的值无要求

  4.Map集合的键值对都可以为null

Map集合的重要API:

public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。
public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
public Set<K> keySet() : 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合),因为Map集合是无序不重复的,而Set集合也是
public boolean containKey(Object key) :判断该集合中是否有此键。
public class MapDemo1 {
    public static void main(String[] args) {
        Map<String , Integer> maps = new HashMap<>();
        // 1.添加元素: 无序,不重复,无索引。
        maps.put("iphoneX",10);
        maps.put("娃娃",30);
        maps.put("iphoneX",100);//  Map集合后面重复的键对应的元素会覆盖前面重复的整个元素!
        maps.put("huawei",1000);
        maps.put("生活用品",10);
        maps.put("手表",10);
        // {huawei=1000, 手表=10, 生活用品=10, iphoneX=100, 娃娃=30}
        System.out.println(maps);

        // 2.清空集合
        //maps.clear();
        //System.out.println(maps);

        // 3.判断集合是否为空,为空返回true ,反之!
        System.out.println(maps.isEmpty());  //false

        // 4.根据键获取对应值。
        System.out.println(maps.get("娃娃")); //30

        // 5.根据键删除整个元素。(删除键会返回键的值)
        System.out.println(maps.remove("手表")); //10
        System.out.println(maps);  //{huawei=1000, 生活用品=10, iphoneX=100, 娃娃=30}

        // 6.判断是否包含某个键 ,包含返回true ,反之
        System.out.println(maps.containsKey("huawei")); //true

        // 7.判断是否包含某个值。
        System.out.println(maps.containsValue(100)); //true
        System.out.println(maps.containsValue("30")); //false

        // 8.获取全部键的集合:public Set<K> keySet()
        // Map集合的键是无序不重复的,所以返回的是一个Set集合。
        Set<String> keys = maps.keySet();
        System.out.println(keys); //[huawei, 生活用品, iphoneX, 娃娃]

        // 9.获取全部值的集合:Collection<V> values();
        // Map集合的值是不做要求的,可能重复,所以值要用Collection集合接收!
        Collection<Integer> values = maps.values();
        System.out.println(values); //[1000, 10, 100, 30]

        // 10.集合的大小
        System.out.println(maps.size()); //4

        // 11.合并其他Map集合。(拓展)
        Map<String,Integer> maps2=new HashMap<>();
        maps2.put("猪猪侠",999);
        maps.put("huawei",10000);
        maps.putAll(maps2);
        System.out.println(maps); //{huawei=10000, 生活用品=10, iphoneX=100, 娃娃=30, 猪猪侠=999}
    }
}

 

 

Map集合

上一篇:vue创建登陆窗口并重定向


下一篇:【JZOJ4752】字符串合成