Map接口中的几个常用方法put(...) remove(...) get(...) containsKey(...)

本文将详细讲解Java中Map接口的几个关键操作:put用于添加键值对,remove用于删除指定键的键值对并返回其值,get用于获取键对应的值,以及containsKey用于检查Map是否包含特定键。了解这些方法对于高效地使用HashMap等数据结构至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中
  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值
  • public V get(Object key) 根据指定的键,在Map集合中获取对应的值
  • boolean containsKey(Object key) 判断集合中是否包含指定的键
public class Demo05Map {
    public static void main(String[] args) {
        showPut();
        showRemove();
        showGet();
        showContainsKey();
    }

    /*
        public V put(K key, V value):  把指定的键与指定的值添加到Map集合中。
        返回值:v
             存储键值对的时候,key不重复,返回值V是null
             存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
    */
    public static void showPut() {

        //用多态创建Map对象
        Map<String, String> redVelvet = new HashMap<>();
        String irene = redVelvet.put("Irene", "裴珠泫");
        String seulgi = redVelvet.put("Seulgi", "姜涩琪");
        System.out.println("Irene: " + irene);// Irene: null  因为集合中没有重复"Irene"
        System.out.println("Seulgi: " + seulgi);// Seulgi: null

        String irene2 = redVelvet.put("Irene", "裴柱现");
        System.out.println("Irene2: " + irene2);//Irene2: 裴珠泫 --集合中存在重复的Irene返回被替换的
        System.out.println(redVelvet);// {Seulgi=姜涩琪, Irene=裴柱现}

        //key值不同,但是value值可以相同
        redVelvet.put("Seulgi2", "姜涩琪");
        System.out.println(redVelvet); // {Seulgi=姜涩琪, Seulgi2=姜涩琪, Irene=裴柱现}
    }

    /*
        public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
        返回值:V
            key存在,v返回被删除的值
            key不存在,v返回null
     */
    public static void showRemove() {
        //创建Map集合对象
        Map<String, Integer> redVelvet = new HashMap<>();
        redVelvet.put("Irene", 29);
        redVelvet.put("Seulgi", 26);
        redVelvet.put("Wendy", 26);
        redVelvet.put("Joy", 24);
        redVelvet.put("yeri", 21);
        System.out.println(redVelvet);// {Seulgi=26, Joy=24, Irene=29, yeri=21, Wendy=26}
        // 注意这是一个无序集合,存取顺序不一致

        Integer joy = redVelvet.remove("Joy");
        System.out.println(joy); // 24 返回被删除的元素
        System.out.println(redVelvet); // {Seulgi=26, Irene=29, yeri=21, Wendy=26}

        Integer iu = redVelvet.remove("IU");
        System.out.println(iu); // null ---若不存在这个键值,返回空
        //attention: remove之后的返回值需要Integer接受,因为可能存在空指针

    }

    /*
      public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
        返回值:
            key存在,返回对应的value值
            key不存在,返回null
     */
    public static void showGet() {
        Map<String, Integer> redVelvet = new HashMap<>();
        redVelvet.put("Irene", 29);
        redVelvet.put("Seulgi", 26);
        redVelvet.put("Wendy", 26);
        redVelvet.put("Joy", 24);
        redVelvet.put("yeri", 21);

        Integer wendy = redVelvet.get("Wendy");
        System.out.println(wendy); // 26

        Integer iu = redVelvet.get("IU");
        System.out.println(iu); // null
    }

    /*
        boolean containsKey(Object key) 判断集合中是否包含指定的键。
        包含返回true,不包含返回false
     */
    public static void showContainsKey() {
        Map<String, Integer> redVelvet = new HashMap<>();
        redVelvet.put("Irene", 29);
        redVelvet.put("Seulgi", 26);
        redVelvet.put("Wendy", 26);
        redVelvet.put("Joy", 24);
        redVelvet.put("yeri", 21);

        Boolean irene = redVelvet.containsKey("Irene");
        System.out.println(irene); //true

        Boolean iu = redVelvet.containsKey("IU");
        System.out.println(iu);  //false

    }
}
### Java 中 `Map` 接口及其实现类的常用方法 #### 方法概述 `Map` 是一种键值对映射的数据结构,在 Java 中由多个具体实现类来提供不同的功能特性。常见的实现类有 `HashMap`, `TreeMap`, 和 `LinkedHashMap` 等。 #### 创建实例并初始化 可以使用如下方式创建一个简单的 `HashMap` 实例[^2]: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { // 创建 HashMap 集合, key 存储字符串类型,value 存储整数类型 Map<String, Integer> hashMap = new HashMap<>(); // 添加元素到 maphashMap.put("one", 1); hashMap.put("two", 2); System.out.println(hashMap); // 输出: {one=1, two=2} } } ``` #### 主要操作方法 - **put()**: 向 `Map` 插入新的键值对或者更新已存在的键对应的值。 - **get(Object key)**: 获取指定键所映射的值;如果此映射不包含该键,则返回 null 或者默认值 (对于某些特定类型的 `Map`)。 - **remove(Object key)**: 移除指定键的映射关系(如果存在),并返回之前关联的值。 - **containsKey(Object key)**: 判断是否含有某个给定的键。 - **size()**: 返回当前 `Map` 的大小即键值对的数量。 - **isEmpty()**: 测试这个 `Map` 是否为空。 - **keySet() / entrySet() / values()**: 分别用于获取所有的键集、条目集以及所有值组成的集合视图。 - **clear()**: 清空整个 `Map` 结构内的全部数据项。 - **compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)**: 计算新值并与现有值进行比较替换[^4]。例如: ```java import java.util.HashMap; import java.util.Map; public class ComputeExample { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.compute(10, (k,v)-> v==null?"default":"updated"); System.out.println(map.get(10)); // 如果不存在则输出 "default" } } ``` #### 特殊用途的方法 除了上述基本的操作外,还有其他一些针对不同场景设计的功能性更强的方法如 `merge()`、`forEach()` 等,这些都可以提高编程效率和代码可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值