Map集合遍历,添加替换,删除元素

  • map会按照存储的顺序保存value
  • 获取也只能根据key获取value,不能通过value获取key。

增加元素:

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。

    说明:

    ​ 在使用put存储一对元素(key-value)对象时,会先拿key去判断Map集合中是否已经存在。

    如果Map集合中没有相同的key存在:就把key-value存储到Map集合中,并返回null值。

    如果Map集合中有相同的key存在:会把之前存储的value对象覆盖。并返回之前的value对象(旧value对象)。

    这里可以理解为修改value,但是不能修改key。

    注意:由于Map是接口,不能创建对象,只能使用Map下面的子类HashMap创建对象。

删除元素:

  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
    ​ remove是根据key删除当前key对应的value这一组数据:

    如果Map集合中有与指定的key相同的元素存在:则删除一对key-value对象,而不是只删除value,并返回删除这组的value值;

    如果Map集合中没有与指定的key相同的元素存在:没有删除操作,返回null;

    问题:为什么不可以通过value来删除一组数据?

    因为key是唯一的,而value可以有多个,所以不能通过value来删除一组数据,只能通过key值进行删除。

  • 清空集合。void clear()

package MapTest;

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

public class Map12 {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "0000049259131");
        map.put(2, "0000049363609");
        map.put(3, "0000049363685");
        map.put(4, "0000049363654");
        map.put(5, "0019428006716");
        map.put(6, "0010343864245");
        map.put(7, "0010343865709");
        map.put(8, "0010343865716");
        map.put(9, "0010343865723");
        map.put(10, "0010343865730");
        map.put(11, "0010343865747");
        map.put(12, "0010343865754");
        map.put(13, "0010343865761");
        map.put(14, "0010942205456");
        map.put(15, "0010942206545");
        map.put(16, "0010942206613");
        map.put(17, "0010942206699");
        map.put(18, "0010942207528");
        //put方法其实有返回值,是V类型
        String put1 = map.put(19, "0010942207542");
        //map集合没有重复的key,返回null,存入key-value
        String put2 = map.put(20, "2022032600003");
        //map集合有重复的key,返回旧value,覆盖旧value,替换为新value
        String put3 = map.put(20, "2022032600001");

        System.out.println("put1 = " + put1);
        System.out.println("put2 = " + put2);
        System.out.println("旧value = " + put3);

        System.out.println("map = " + map);

        String remove = map.remove(20);
        System.out.println("移除元素 = " + remove);
        //重新放入元素
        map.put(20, "2022032600002");

        //通过遍历keySet,获取value
        Set<Integer> keys = map.keySet();
        for (Integer key : keys) {
            String value = map.get(key);
            System.out.println(key + "------" + value);
        }

        map.clear();
        System.out.println("清空后map = " + map);
        //什么都不打印
        for (Integer key : keys) {
            String value = map.get(key);
            System.out.println(key + "------" + value);
            System.out.println("执行了。。。");
        }
        System.out.println("结束");
    }
}

在这里插入图片描述

package MapTest;

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

public class Map15 {
    public static void main(String[] args) {
        // Mapの宣言
        Map<String, Integer> map = new HashMap<String, Integer>();

        // Mapに要素を追加
        map.put("apple", 100);
        map.put("orange", 200);
        map.put("melon", 300);

        // Iterator<Integer> の宣言
        Iterator<Integer> val_itr = map.values().iterator();

        // valueの取得
        while(val_itr.hasNext()) {
            // nextを使用して値を取得する
            Integer i = (Integer)val_itr.next();

            System.out.println(i);
        }
        System.out.println();
        
        for (Integer i : map.values()) {
            // nextを使用して値を取得する
            System.out.println(i);
        }
    }
}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值