Map 是 Java 中常见的一种数据结构,它存储了一组键值对,其中每个键都唯一对应一个值,而多个键可以对应同一个值。在 Map 中,通过键快速定位对应的值,相对于遍历数组或者列表来说,速度更快。在 Java 中,Map 接口有多个实现类,其中常用的
Java 中 Map 的用法详解
简介
Map 是 Java 中常见的一种数据结构,它存储了一组键值对,其中每个键都唯一对应一个值,而多个键可以对应同一个值。在 Map 中,通过键快速定位对应的值,相对于遍历数组或者列表来说,速度更快。在 Java 中,Map 接口有多个实现类,其中常用的有 HashMap 和 TreeMap。
常用方法介绍
1. put 方法
public V put(K key, V value);
put 方法用于向 Map 中添加键值对,如果 Map 中已经存在该键,则会将旧值替换为新值,并返回旧值。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
map.put("Tom", 20);
System.out.println(map.get("Tom")); // 20
2. get 方法
public V get(Object key);
get 方法用于获取 Map 中指定键对应的值,如果该键不存在,则返回 null。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
System.out.println(map.get("Tom")); // 18
System.out.println(map.get("Jerry")); // null
3. remove 方法
public V remove(Object key);
remove 方法用于从 Map 中删除指定键对应的键值对,并返回该键对应的值,如果该键不存在,则返回 null。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
System.out.println(map.remove("Jerry")); // null
System.out.println(map.remove("Tom")); // 18
4. keySet 方法
public Set<K> keySet();
keySet 方法用于获取 Map 中所有键的集合。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key + ": " + map.get(key));
}
输出:
Tom: 18
Jerry: 21
5. entrySet 方法
public Set<Map.Entry<K, V>> entrySet();
entrySet 方法用于获取 Map 中所有键值对的集合。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
输出:
Tom: 18
Jerry: 21
6. size 方法
public int size();
size 方法用于获取 Map 中键值对的数量。
示例:
Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
System.out.println(map.size()); // 2
示例
示例一:计算字符串中每个字符出现的次数
String str = "Hello, world!";
Map<Character, Integer> map = new HashMap<>();
for (char c : str.toCharArray()) {
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
输出:
H: 1
e: 1
l: 3
o: 2
,: 1
: 1
w: 1
r: 1
d: 1
!: 1
示例二:多重映射
Map<String, List<Integer>> map = new HashMap<>();
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
map.put("key1", list1);
map.put("key2", list2);
System.out.println(map.get("key1")); // [1, 2]
System.out.println(map.get("key2")); // [3, 4]
总结
本文介绍了 Java 中 Map 接口的常用方法以及两个示例,希望能为读者在实际开发中使用 Map 提供一些帮助。
本文标题为:Java 中Map 的用法详解
基础教程推荐
- spring data jpa 创建方法名进行简单查询方式 2022-10-24
- Java超详细整理讲解各种排序 2023-03-22
- SpringBoot快速集成Logback日志组件 2023-04-07
- JavaMail实现邮件发送机制 2023-04-12
- 为何HashSet中使用PRESENT而不是null作为value 2023-06-10
- web开发之对比时间大小的工具函数的实例详解 2023-08-01
- 解决SpringBoot中的Scheduled单线程执行问题 2023-02-10
- Java算法设计与分析分治算法 2023-03-22
- SpringMVC下实现Excel文件上传下载 2024-02-28
- Java Swing实现扫雷源码 2022-12-04