Java8 Map 新方法

Map 接口中新增了默认方法

  • default V putIfAbsent(K key, V value)
    • 不需要额外的存在性检查
    • 如果 key 不存在,则加入到 map 中,返回新加入的 value;否则返回该 key 对应的已存在的 value
    • 使用:
Map m = new HashMap();
m.putIfAbsent("name", "Tom");
String name = m.putIfAbsent("name", "Cat");
System.out.println(name); // 输出 Tom
  • default V getOrDefault(Object key, V defaultValue)
    • 如果 key 存在,则返回该 key 对应的已存在的 value;否则返回 default value
    • 使用:
Map m = new HashMap();
String address = m.getOrDefault("address", "shanghai");
System.out.println(address); // 输出 shanghai
  • default boolean remove(Object key, Object value)
    • 只有当 key 和 value 都匹配时,才删除
    • 使用:
Map m = new HashMap();
m.putIfAbsent("name", "Tom");
m.putIfAbsent("address", "shanghai");
System.out.println(m.remove("name", "Tom")); // 输出 true
System.out.println(m.remove("address", "beijing")); // 输出 false
  • default V replace(K key, V value)
    • 如果该 key 存在,则将对应的值替换为 value
    • 使用:
Map m = new HashMap();
m.putIfAbsent("name", "Tom");
m.replace("name", "Cat");
System.out.println(m.get("name")); // 输出 Cat
  • default void forEach(BiConsumer action)
    • 参数为一个 Lambda 表达式
    • 使用:
Map m = new HashMap();
m.putIfAbsent("name", "Tom");
m.forEach((k, v) -> {
    System.out.println(k + ": " + v);
});

你可能感兴趣的:(Java8 Map 新方法)