Java Map接口

🚩Java Map接口

📚Java集合框架图

在这里插入图片描述
通过集合框架图我们发现,Map 接口是顶层接口。

public interface Map<K,V>

Map接口以键值对的形式存储数据。
K:映射所维护的的类型。
V:映射所维护的的类型

📘Map接口的特点

我们用Map接口的实现类HashMap通过添加元素,来观察Map接口的特点。

🐟代码示例

import java.util.HashMap;

@SuppressWarnings({"all"})
public class MapDemo {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1","v1");
        hashMap.put("k1","v11");
        hashMap.put(null,"k");
        hashMap.put("k2",null);
        hashMap.put("k3",null);

        System.out.println(hashMap);
    }
}

🐋运行结果

在这里插入图片描述

🐳特点总结

1.用来存储具有映射关系的数据:Key-Value
2.Map中的keyvalue可以是任何引用数据类型
3.Map中的key不可以重复
4.Map中的value可以重复
5.如果向Map中加入数据,Map中有对应的数据key相同,会把与之对应的Value覆盖
6.Map的key可以为null,value也可以为null,注意key为null,只能有一个,value为null,可以多个
7.常用String类作为Map中的key
8.keyvalue之间存在单向的一对一关系,即通过指定的key总能找到对应的value
9.map中取出的数据顺序与插入的数据顺序不一致,因为map底层是运用了哈希表

📗Map接口的常用方法

方法名称返回值类型
size()int
isEmptyboolean
containsKey(Object)boolean
containsValue(Object)boolean
get(Object)V
put(K,V)V
remove(Object)V
putAll(Map<? extends K,? extends V>)void
clear()void
keySet()Set
values()Collection
entrySet()Set<Entry<K,V>>

V put(K key, V value)

将指定的键keyvalue存储到集合中,
如果当前插入的数据的key已经存在时,最新的value会覆盖原有的value
返回值是键值对的值的类型
【map接口下集合特点:key不能重复】
如果当前key不存在时,插入数据返回为null
如果当前key存在时,返回旧的value

import java.util.HashMap;

public class MapTest01 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1","v1");
        hashMap.put("k2","v2");
        hashMap.put("k3","v3");
        String put =hashMap.put("k3","v33");
        System.out.println(put);
        System.out.println(hashMap);
    }
}

运行结果:
在这里插入图片描述

int size()

表示Map集合中元素的个数,返回int类型表示数据个数

import java.util.HashMap;

public class MapTest02 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        int size = hashMap.size();
        System.out.println(size);
    }
}

运行结果
在这里插入图片描述

V get(Object key)

获取键所映射的值,如果不存在则返回为null

import java.util.HashMap;

public class MapTest03 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        String v1 = hashMap.get("k1");
        String v2 = hashMap.get("k4");

        System.out.println(v1);
        System.out.println(v2);
    }
}

运行结果:
在这里插入图片描述

boolean isEmpty()

判断当前集合是否为空, 返回是Boolean类型,true:表示为空,false:表示不为空

import java.util.HashMap;

public class MapTest04 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        boolean empty = hashMap.isEmpty();
        System.out.println(empty);
    }
}

运行结果:
在这里插入图片描述

boolean containsKey(Object key)

判断map集合中是否存在指定的键
参数key:需要判断是否存在的键
返回是Boolean类型:true:存在 false;不存在

import java.util.HashMap;

public class MapTest05 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        boolean k1 = hashMap.containsKey("k1");
        System.out.println(k1);
    }
}

运行结果:
在这里插入图片描述

boolean containsValue(Object value)

import java.util.HashMap;

public class MapTest06 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        boolean v1 = hashMap.containsValue("v1");
        System.out.println(v1);
    }
}

运行结果:
在这里插入图片描述

V remove(Object key)

通过key删除集合中该key对应的键值对
参数key:指定的键
返回值:是value值,如果key不存在,返回的null

import java.util.HashMap;

public class MapTest07 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        String k1 = hashMap.remove("k1");
        String k2 = hashMap.remove("k4");
        System.out.println(k1);
        System.out.println(k2);
        System.out.println(hashMap);
    }
}

运行结果:
在这里插入图片描述

void clear()

删除集合中所有的元素

import java.util.HashMap;

public class MapTest08 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        System.out.println("删除前:" + hashMap);
        hashMap.clear();
        System.out.println("删除后:" + hashMap);
    }
}

运行结果:
在这里插入图片描述

entrySet()

将map集合转化为Set集合,多用于遍历键值对

Set <Map.Entry <String, String>> entries = hashMap.entrySet();

Set keySet()

获取Map集合中所有键的Set集合,多用于遍历键

Set<String> keys = hashMap.keySet();

Collection values()

获取Map集合中所有值的Collection的集合,多用于值的遍历

 Collection<String> values = hashMap.values();

📕Map接口中实现类的三种遍历方式

⛵按照键值对遍历

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

public class MapFor01 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        Iterator<Map.Entry<String, String>> iterator = hashMap.entrySet().iterator();
        while(iterator.hasNext()) {
            Map.Entry<String, String> entry = iterator.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println("key:" + key + " value:" + value);
        }
    }
}

运行结果:
在这里插入图片描述

🚤遍历map中所有的键

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

public class MapFor02 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        Set<String> keySet = hashMap.keySet();
        for ( String key : keySet) {
            System.out.println(key);
        }
    }
}

运行结果:
在这里插入图片描述

🛥️遍历Map中所有的值

import java.util.Collection;
import java.util.HashMap;

public class MapFor03 {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");

        Collection<String> values = hashMap.values();
        for (String value : values) {
            System.out.println(value);
        }
    }
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WYSCODER

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

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

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

打赏作者

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

抵扣说明:

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

余额充值