当前位置: 首页 > news >正文

Java 中的 Map集合

文章目录

  • 添加和修改元素
  • 获取元素
  • 检查元素
  • 删除元素
  • 获取所有键 / 值 / 键值对
  • 大小

在 Java 中,Map 接口是 Java 集合框架的一部分,它存储键值对(key-value pairs)。Map 接口有许多常用的方法,用于添加、删除、获取元素,以及检查 Map 的状态。以下是一些常用的 Map 方法:

添加和修改元素

(1)put(K key, V value): 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个键的映射关系,则旧值被替换。

map.put("key", "value");

(2)putAll(Map<? extends K,? extends V> m): 从指定映射中将所有映射关系复制到此映射中(可选操作)。

Map<String, String> anotherMap = new HashMap<>();  
anotherMap.put("anotherKey", "anotherValue");  
map.putAll(anotherMap);

获取元素

(1)get(Object key): 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null。

String value = map.get("key");

(2)getOrDefault(Object key, V defaultValue): 返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回给定的默认值。

String value = map.getOrDefault("key", "defaultValue");

检查元素

(1)containsKey(Object key): 如果此映射包含指定键的映射关系,则返回true。

boolean containsKey = map.containsKey("key");

(2)containsValue(Object value): 如果此映射将一个或多个键映射到指定值,则返回true。

boolean containsValue = map.containsValue("value");

(3)isEmpty(): 如果此映射不包含键值对映射关系,则返回true。

boolean isEmpty = map.isEmpty();

删除元素

(1)remove(Object key): 如果存在键的映射关系,则从此映射中移除该键的映射关系(可选操作)。

map.remove("key");

(2)remove(Object key, Object value): 只有当指定键的当前映射值也等于指定值时,才从此映射中移除该键的映射关系(可选操作)。

map.remove("key", "value");

(3)clear(): 从此映射中移除所有映射关系(可选操作)。

map.clear();

获取所有键 / 值 / 键值对

在 Java 的 Map 接口中,keySet(), values(), 和 entrySet() 是三个常用的方法,它们分别用于获取 Map 中的键集合、值集合和键值对集合。下面详细解释这三个方法:

(1)keySet():返回 Map 中所有键的 Set 集合。

Map<String, Integer> map = new HashMap<>();  
map.put("one", 1);  
map.put("two", 2);  
map.put("three", 3);  Set<String> keySet = map.keySet();  
for (String key : keySet) {  System.out.println(key); // 输出:one, two, three  
}

(2)values():返回 Map 中所有值的 Collection 集合。

Map<String, Integer> map = new HashMap<>();  
map.put("one", 1);  
map.put("two", 2);  
map.put("three", 3);  Collection<Integer> values = map.values();  
for (Integer value : values) {  System.out.println(value); // 输出:1, 2, 3  
}

(3)entrySet():返回 Map 中所有键值对的 Set 集合。每个元素都是 Map.Entry 对象。

Map<String, Integer> map = new HashMap<>();  
map.put("one", 1);  
map.put("two", 2);  
map.put("three", 3);  Set<Map.Entry<String, Integer>> entrySet = map.entrySet();  
for (Map.Entry<String, Integer> entry : entrySet) {  System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());  // 输出:Key: one, Value: 1  //      Key: two, Value: 2  //      Key: three, Value: 3  
}

使用 entrySet() 的一个常见场景:在遍历 Map 时同时需要键和值。由于 entrySet() 返回的是包含键值对的集合,因此可以直接获取到每个键值对对象,并分别访问其键和值。

大小

size():返回此映射中的键值对的数量。

在 Java 中,List,Set 和 Map 这三种集合类型都有判断某个元素是否存在的方法,但具体使用上略有不同:

  • 对于 List 和 Set,contains(Object o) 方法用于判断 List 或 Set 中是否包含指定的元素。如果包含,则返回 true;否则返回 false。

  • Map 集合没有直接的 contains 方法,但提供了 containsKey(Object key) 和containsValue(Object value) 两个方法。containsKey 用于判断 Map 中是否包含指定的键,而 containsValue 用于判断 Map 中是否包含指定的值。

如何判断两个 Map 中的内容完全相同

equals() 方法。equals() 方法通常用于比较两个对象的内容是否相等。

http://www.lryc.cn/news/332233.html

相关文章:

  • 基于springboot大学生兼职平台管理系统(完整源码+数据库)
  • C#学生信息管理系统
  • 双机 Cartogtapher 建图文件配置
  • VMware提示 该虚拟机似乎正在使用中,如何解决?
  • 阿里云短信服务业务
  • ElasticSearch的DSL查询
  • 每天定时杀spark进程
  • win10 安装kubectl,配置config连接k8s集群
  • Calico IPIP和BGP TOR的数据包走向
  • 静态成员主要用于提供与类本身相关的功能或数据,有什么应用场景
  • 在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)
  • C语言-----数据在内存中的存储(1)
  • Ribbon有哪些负载均衡策略
  • websocket多级nginx代理
  • 【python从入门到精通】-- 第四战:语句汇总
  • 【NC50937】货仓选址
  • Nginx配置使用笔记
  • GridLayoutManager 中的一些坑
  • 算法实验二 矩阵最小路径和 LIS
  • Apache Paimon实时数据糊介绍
  • 计算机网络:数据链路层 - 可靠传输协议
  • 苍穹外卖07(缓存菜品,SpringCache,缓存套餐,添加购物车菜品和套餐多下单,查看购物车,清除购物车,删除购物车中一个商品)
  • C语言第三十八弹---编译和链接
  • 无人售货奶柜:开启便捷生活的新篇章
  • STM32为什么不能跑Linux?
  • Dubbo 3.x源码(18)—Dubbo服务引用源码(1)
  • 设计模式:工厂模式和抽象工厂模式的区别
  • python面试题(36~50)
  • Vue 样式技巧总结与整理[中级局]
  • cesium加载.tif格式文件