Map集合、集合子类以及常用方法

Map集合

java.util.Map<k,v)集合
Map集合的特点:

  1. Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)

  2. Map集合中的元素,key和value数据类型可以相同,也可以不同

  3. Map集合中的元素,key是不允许重复的,value是可以重复的

  4. Map集合中的元素,key和value是一一对应

Map集合子类

java.util.HashMap<k,v>集合 implements Map<k,v>接口

HashMap集合的特点:

  1. HashMap集合底层是哈希表:查询的速度特别的快
    JDK1.8之前:数组+单向链表
    JDK1.8之后:数组+单向链表、红黑树(链表长度超过8):提高查询速度

  2. HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致

LinkedHashMap的特点

  1. LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)

  2. LinkedHashMap集合是有序的集合,存储元素和取出元素的顺序是一致的

Map集合常用方法

package com.Map;

/*
   java.util.Map<k,v)集合
   Map集合的特点:
        1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
        2.Map集合中的元素,key和value数据类型可以相同,也可以不同
        3.Map集合中的元素,key是不允许重复的,value是可以重复的
        4.Map集合中的元素,key和value是一一对应

   java.util.HashMap<k,v>集合 implements Map<k,v>接口
   HashMap集合的特点:
        1.HashMap集合底层是哈希表:查询的速度特别的快
             JDK1.8之前:数组+单向链表
             JDK1.8之后:数组+单向链表、红黑树(链表长度超过8):提高查询速度
        2.HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
   LinkedHashMap的特点
        1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
        2.LinkedHashMap集合是有序的集合,存储元素和取出元素的顺序是一致的
 */

import java.util.HashMap;
import java.util.Map;

public class Demo01Map {
    public static void main(String[] args) {
//        show01();
//        show02();
//        show03();
        show04();

    }
    /*
        public V put(K key, V value):把指定的键与指定的值添加到Map集合中。
             返回值:v
                 存储键值对的时候,key不重复,返回值V是null
                 存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
     */
    private static void show01() {
         //创建Map集合对象,多态
        Map<String,String> map = new HashMap<>();
        String v1 = map.put("李晨", "范冰冰1");
        System.out.println("v1:"+v1);  //v1:null

        String v2 = map.put("李晨", "范冰冰2");
        System.out.println("v2:"+v2);  //v2:范冰冰1

        System.out.println(map);  //{李晨=范冰冰2}

        map.put("王维","李商隐");
        map.put("杨过","小龙女");
        map.put("尹志平","小龙女");
        System.out.println(map);  //{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 王维=李商隐}

    }
    /*
    public V remove(Object key):把指定的键 所对应的键值对元素  在Map集合中删除,返回被删除的元素的值
     返回值:V
         key存在,v返回被删除的元素
         key不存在,v返回null
 */
    private static void show02() {
        Map<String,Integer> map = new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志玲",178);
        System.out.println(map);   //{林志玲=178, 赵丽颖=168, 杨颖=165}

        Integer v1 = map.remove("林志玲");
        System.out.println("v1:"+v1); // v1:178

        System.out.println(map); //{赵丽颖=168, 杨颖=165}

        Integer v2 = map.remove("林志颖");
//        int v2 = map.remove("林志颖"); //自动拆箱    NullPointerException
        System.out.println("v2:"+v2); //v2:null
    }
    /*
   public V get(Object key) 根据指定的值,在Map集合中获取对应的值。
      返回值:
        key存在,返回对应的value值
        key不存在,返回null
 */
    private static void show03() {
        Map<String,Integer> map = new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志玲",178);

        Integer v1 = map.get("杨颖");
        System.out.println("v1:"+v1); //v1:165

        Integer v2 = map.get("迪丽热巴");
        System.out.println("v2:"+v2); //v2:null
    }
    /*
     boolean containsKey(Object key) 判断集合中是否包含指定的键
     包含返回true,不包含返回false
   */
    private static void show04() {
        Map<String,Integer> map = new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志玲",178);

        boolean b1 = map.containsKey("赵丽颖");
        System.out.println("b1:"+b1); //b1:true

        boolean b2 = map.containsKey("赵颖");
        System.out.println("b2:"+b2); //b2:false

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值