Java 中Map 的用法详解

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 的用法详解

基础教程推荐