Map(Java)

文章介绍了Java中的Map接口,强调了双列集合的特点,如键值一一对应且键不可重复。展示了Map的常用方法,包括添加、删除、清空、判断键值对存在以及获取集合长度的操作,并通过代码实例进行了演示。此外,文章还详细讲解了Map的遍历方式,包括键找值和键值对的遍历,并用Lambda表达式进行了简化示例。
摘要由CSDN通过智能技术生成

Map(Java)

双列集合的特点

  • 双列集合一次添加一对数据,分别为键和值
  • 键不能重复,值可以重复
  • 键和值是一一对应的,每一个键只能找到自己对应的值
  • 键+值这个整体 我们称之为”键值对“或者”键值对对象“,在java中叫做”Entry对象“

Map的常用方法及代码展示

Map是双列集合中的顶层接口,功能是全部双列集合都可以继承使用

方法名称说明
V put(K key,V value)添加元素
V remove(Object key)根据键删除键值对元素
void clear()移除所有的键值对元素
boolean containsKey(Object key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合是否包含指定值
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中的键值对的个数

方法代码展示

添加元素

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        //2.添加元素
        //put方法的细节
        //添加/覆盖

        //在添加数据的时候,如果键不存在,那么直接把键值对对象添加到map集合当中,方法返回null
        //在添加数据的时候,如果键是存在的,那么会把原有的键值对对象进行覆盖,会把被覆盖的值进行返回

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        System.out.println(m);

        String value1 = m.put("b1", "b3");
        System.out.println(value1);

        System.out.println(m);
    }
}

添加元素

根据键删除键值对元素

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //根据键或者键和值删除键值对元素
        String remove1 = m.remove("a1");
        System.out.println(remove1);
        System.out.println(m);

        boolean remove2 = m.remove("b1", "d1");
        System.out.println(remove2);
        System.out.println(m);

        boolean remove3 = m.remove("b1", "b2");
        System.out.println(remove3);
        System.out.println(m);

    }
}

根据键删除键值对元素结果展示

根据键来删除对象,返回值是对应的值的类型,返回的是对应的值

根据值来删除对象,返回boolean类型

清空

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //清空
        System.out.println(m);
        m.clear();
        System.out.println(m);

    }
}

clear 结果展示

判断键值对是否存在

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //判断是否存在
        //判断键对应的键值对是否存在
        boolean containsKey1 = m.containsKey("a1");
        System.out.println(containsKey1);

        boolean containsKey2 = m.containsKey("a2");
        System.out.println(containsKey2);

        //判断值对应的键值对是否存在
        boolean containsValue1 = m.containsValue("a2");
        System.out.println(containsValue1);

        boolean containsValue2 = m.containsValue("a1");
        System.out.println(containsValue2);

    }
}

Map contains结果展示

判断是否为空

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //判断是否为空
        boolean mEmpty1 = m.isEmpty();
        System.out.println(mEmpty1);

        m.clear();
        boolean mEmpty2 = m.isEmpty();
        System.out.println(mEmpty2);

    }
}

Map isEmpty 结果展示

获取集合长度

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

public class Mapdemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //集合长度
        int size1 = m.size();
        System.out.println(size1);

        m.put("e1","e2");
        int size2 = m.size();
        System.out.println(size2);
    }
}

Map size结果展示

Map的遍历方式

键找值 键值对 Lambda表达式

键找值

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

public class MapTraversalDemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        //添加元素
        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //键找值

        //获取所有的键,把这些键放到一个单列集合中
        Set<String> keySet = m.keySet();
        
//        //迭代器遍历
//        Iterator<String> keyiterator = keySet.iterator();
//        while (keyiterator.hasNext()) {
//            String key = keyiterator.next();
//            //System.out.println(key);
//            String value = m.get(key);
//            System.out.println(key + "=" + value);
//        }

//        //增强for遍历
//        for (String key : keySet) {
//            //System.out.println(key);
//            String value = m.get(key);
//            System.out.println(key + "=" + value);
//        }
        
        //Lambda表达式遍历
        keySet.forEach(key -> {
            //System.out.println(key);
            String value = m.get(key);
            System.out.println(key + "=" + value);
        });
    }
}

Map 键找值遍历结果展示 结果展示

键值对

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

public class MapTraversalDemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        //添加元素
        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");
        
        //键值对

        //通过一个方法获取所有的键值对对象,返回一个Set集合
        Set<Map.Entry<String, String>> entries = m.entrySet();

//        //迭代器遍历
//        Iterator<Map.Entry<String, String>> keyiterator = entries.iterator();
//        while (keyiterator.hasNext()){
//            Map.Entry<String, String> entry = keyiterator.next();
//            String key = entry.getKey();
//            String value = entry.getValue();
//            System.out.println(key+"="+value);
//            //System.out.println(entry);
//        }

//        //增强for遍历
//        for (Map.Entry<String, String> entry : entries) {
//            System.out.println(entry);
//        }

        //lambda表达式
        entries.forEach(Entry -> System.out.println(Entry));
    }
}

Map 键值对遍历结果展示

Lambda表达式

方法名称说明
default void forEach(BiConsumer<? super K,? super V> action)结合lambda遍历Map集合
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;

public class MapTraversalDemo {
    public static void main(String[] args) {
        //创建Map集合的对象
        Map<String, String> m = new HashMap<>();

        //添加元素
        m.put("a1", "a2");
        m.put("b1", "b2");
        m.put("c1", "c2");
        m.put("d1", "d2");

        //lambda表达式

        //利用lambda表达式进行遍历

//        //匿名内部类的形式
//        m.forEach(new BiConsumer<String, String>() {
//            @Override
//            public void accept(String key, String value) {
//                System.out.println(key + "=" + value);
//            }
//        });

        //简化成lambda表达式
        m.forEach((key, value) -> System.out.println(key + "=" + value));

    }
}

Map Lambda表达式遍历结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都不会的鲨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值