【JAVA】【集合10】Java中的Map接口
2021/5/21 20:29:10
本文主要是介绍【JAVA】【集合10】Java中的Map接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、Map定义
Map是一系列键值对,一个键(key)对应一个值(value)。
Map 接口定义了用于定义和查询映射的 API。Map 接口属于 Java 集合框架,但没有扩展 Collection 接口,因此 Map 只是一种集合, 而不是 Collection 类型。
在java.util.Map中定义。
public interface Map<K,V>
Map 是参数化类型,有两个类型变量。类型变量 K 表示映射中键的类型,类型变量 V 表示键对应的值的类型。如:
- 有个映射,其键是 String 类型, 值是 Integer 类型,那么这个映射可以表示为 Map<String, Integer>。
Map 的重要特性之一:可以视作集合。虽然 Map 对象不是 Collection 类型,但映射的键可以看成 Set 对象,映射的值可以看成 Collection 对象,而映射的键值对可以看成由 Map.Entry 对象组成的 Set 对象。
二、Map定义的接口
1.增加/修改元素
(1)指定<key, value>新增/修改元素
V put(K key, V value);
注:如果Map中先前已包含该key的映射,则其Value被参数值替换。
(2)把参数指定Map内容 添加到目标Map中
void putAll(Map<? extends K, ? extends V> m);
(2)指定key,设置value为新的值
V replace(K key, V value)
(3)指定<key, value>把value替换为新值
boolean replace(K key, V oldValue, V newValue)
(4)自定义修改
merge方法有三个参数:
- key:map中的键
- value:使用者传入的值
- remappingFunction:BiFunction函数接口(该接口接收两个值,执行自定义功能并返回最终值)。
当map中不存在指定的key时,便将传入的value设置为key的值;当key存在时,执行一个方法该方法传入key的旧值和参数指定的新value,执行自定义的方法返回最终结果设置为key的值。
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
2.删除元素
(1)指定key,删除元素
V remove(Object key);
(2)指定<key, value>,若存在则删除
boolean remove(Object key, Object value)
(3)清空Map
void clear();
3.查找元素
(1)指定key获取Value
V get(Object key);
(2)判断key是否存在
boolean containsKey(Object key);
(3)判断value是否存在
boolean containsValue(Object value);
4.判断Map的size
int size(); boolean isEmpty();
5.集合之间转换
(1)把Map的key作为set集合返回
Set<K> keySet();
(2)把Map的值作为Collection集合返回
Collection<V> values();
(3)把Map作为由 Map.Entry 对象组成的 Set 对象返回
Set<Map.Entry<K, V>> entrySet();
三、Map中的Entry<k, v>接口
map中定义了Entry<k, v>内部接口。用于定义Map的单个元素的操作接口定义。
interface Entry<K,V> { K getKey(); V getValue(); V setValue(V value); boolean equals(Object o); ... }
四、遍历Map中所有元素
可以通过获取keyset,然后使用forEach遍历key的方式。如:
Map<String. String> strMap = new HashMap<>(); for(String key : strMap.keySet()){ strMap.get(key); }
这篇关于【JAVA】【集合10】Java中的Map接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略