JAVA8-Map骚操作函数式编程
主要是函数编程,跑一遍demo,知道入参和返回值就能掌握函数式编程了。
新增的默认接口方法
- code
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("d", "3");
map.put("e", "3");
map.put("f", null);
map.put("g", "4");
map.put("h", null);
map.put("i", "44");
// 1. 对指定key的进行函数计算,返回值为newValue
map.compute("a", (k, v) -> v != null ? v + "a" : "aaaa");
// 2. 如果key不存在,则执行后面函数并放入map;key存在,则直接返回value
map.computeIfAbsent("e", k -> "dddd");
// 3. key v同时存在非空才执行函数
map.computeIfPresent("b", (k, v) -> "newValue");
map.computeIfPresent("f", (k, v) -> "newValue");
// 4. 如果指定key v不为空,执行后面函数操作返回值为新value,为空则填入默认value
map.merge("g", "ggggg", (oldV, newV) -> oldV + "---" + newV);
map.merge("h", "hhhhh", (oldV, newV) -> oldV + "---" + newV);
// 5. 对所有key做操作,返回值为newValue
map.replaceAll((k, v) -> v + "-update");
// 6. key 不存在就插入
map.putIfAbsent("i","iiiii");
System.out.println(map);
}