Skip to content

MapAPI

CRUD

put(K key, V value)

  • 说明:添加或更新 key 对应的 value
  • 返回值:原来的 value(如果 key 已存在),否则返回 null
java
Map<String, Integer> scores = new HashMap<>();

Integer oldValue1 = scores.put("Tom", 90);
Integer oldValue2 = scores.put("Tom", 95);

System.out.println(oldValue1); // null
System.out.println(oldValue2); // 90
System.out.println(scores);    // {Tom=95}

get(Object key)

  • 说明:获取 key 对应的 value
  • 返回值:对应的 value,如果不存在则返回 null
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);

Integer value1 = scores.get("Tom");
Integer value2 = scores.get("Jerry");

System.out.println(value1); // 95
System.out.println(value2); // null

remove(Object key)

  • 说明:删除指定的 key
  • 返回值:被删除的 value,如果不存在则返回 null
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

Integer removed = scores.remove("Tom");

System.out.println(removed); // 95
System.out.println(scores);  // {Jerry=88}

putAll(Map<? extends K, ? extends V> m)

  • 说明:将另一个 Map 中的所有键值对批量添加到当前 Map
  • 返回值:无
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);

Map<String, Integer> moreScores = new HashMap<>();
moreScores.put("Jerry", 88);
moreScores.put("Rose", 100);

scores.putAll(moreScores);

System.out.println(scores); // {Tom=95, Jerry=88, Rose=100}

clear()

  • 说明:清空整个 Map
  • 返回值:无
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

scores.clear();

System.out.println(scores);        // {}
System.out.println(scores.isEmpty()); // true

查询

containsKey(Object key)

  • 说明:判断是否包含某个 key
  • 返回值:truefalse
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);

System.out.println(scores.containsKey("Tom"));   // true
System.out.println(scores.containsKey("Jerry")); // false

containsValue(Object value)

  • 说明:判断是否包含某个 value
  • 返回值:truefalse
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

System.out.println(scores.containsValue(95));  // true
System.out.println(scores.containsValue(100)); // false

isEmpty()

  • 说明:判断 Map 是否为空
  • 返回值:truefalse
java
Map<String, Integer> scores = new HashMap<>();
System.out.println(scores.isEmpty()); // true

scores.put("Tom", 95);
System.out.println(scores.isEmpty()); // false

size()

  • 说明:获取 Map 中元素数量
  • 返回值:元素个数
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

System.out.println(scores.size()); // 2

获取视图

keySet()

  • 说明:获取所有 key
  • 返回值:Set<K>
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

Set<String> keys = scores.keySet();

System.out.println(keys); // [Tom, Jerry]

values()

  • 说明:获取所有 value
  • 返回值:Collection<V>,运行时类是HashMap.Values,他实现了Collection接口
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

Collection<Integer> values = scores.values();

System.out.println(values); // [95, 88]

entrySet()

  • 说明:获取所有键值对集合
  • 返回值:Set<Map.Entry<K, V>>
java
Map<String, Integer> scores = new HashMap<>();
scores.put("Tom", 95);
scores.put("Jerry", 88);

Set<Map.Entry<String, Integer>> entries = scores.entrySet();

for (Map.Entry<String, Integer> entry : entries) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}