Java Map接口

导读:本篇文章讲解 Java Map接口,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

🚩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
isEmpty boolean
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);
        }
    }
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95522.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!