Java8新特性——Map的新方法
来源:互联网 发布:gom引擎源码 编辑:程序博客网 时间:2024/05/26 17:48
今天是高考的日子,是大四师兄师姐答辩毕业的日子。一代又来,一代又去。好久没写博客,借此特殊日子整理一下前不久学java8新特性时写的代码,留下痕迹。(本博客的代码根据 java8新特性教程 学习整理,加上个人的理解而成,关于某个新特性的介绍代码里的注释已经阐述清楚,故不再写文字介绍,直接看代码吧!)
本篇介绍java8的新特性之一:Map的新方法。
import java.util.HashMap;import java.util.Map;import org.junit.Test;/** * Map */public class NewMap {@Testpublic void testMap(){Map<Integer, String> map = new HashMap<>();for(int i=0; i<10; i++){//putIfAbsent使得我们不用写是否为null值的检测语句;map.putIfAbsent(i, "val_"+i);}//-------1------maps不支持流。然而现在maps包括了许多新的非常有用的方法用于执行通用任务://forEach使用consumer来对map中的每个元素进行操作,执行通用任务。map.forEach( (key,value) -> System.err.println(key +" : "+value) );//----------2-------------------使用功能性函数在map里执行代码://将key为3对应的值(val_3)改为 "val_3"+3*10 = val_330map.computeIfPresent(3, (num, val) -> val + num*10); System.err.println(map.get(3)); //val_330 //将key为9对应的值(val_9)改为 nullmap.computeIfPresent(9, (num, val) -> null); map.containsKey(9); // false //将key为23对应的值(null)改为 "val_23"map.computeIfAbsent(23, num -> "val" + num); map.containsKey(23); // true map.put(3, null);//如果key为3对应的值改为null, 将其值改为"bam"map.computeIfAbsent(3, num -> "bam"); System.err.println(map.get(3));// bam //---------3--------------删除给定键所对应的元素。删除操作还需要满足给定的值需要和map中的值相等:map.remove(3, "val3"); map.get(3); // val33 map.remove(3, "val33"); map.get(3); // null //----------4--------其他一些帮助性方法:map.getOrDefault(44, "404 not found");//---------------5----------------合并map中的实体//此时map.get(9)=nullmap.merge(9, "val999", (value, newValue) -> value.concat(newValue)); map.get(9); // val999System.err.println(map.get(9)); map.merge(9, "concat", (value, newValue) -> value.concat(newValue)); map.get(9); // val999concat System.err.println(map.get(9)); }}
详情请见这篇博客: java8新特性教程
0 0
- Java8新特性——Map的新方法
- java8新特性之Map
- java8中map的新方法--replace
- java8中map的新方法--replace
- JAVA8的新特性
- Java8的新特性
- JAVA8的新特性
- java8的新特性
- Java8的新特性
- JAVA8的新特性
- Java8的新特性
- java8的新特性
- java8的新特性
- java8新特性——函数式编程(stream/map)
- Java8新特性——Lambda表达式
- Java8新特性——lambda表达式
- Java8新特性——时间API
- Java8新特性——LocalDate
- VS2005 调试时端口号不一致的问题
- leetcode之Merge Intervals
- 硬件工程师电路设计必须紧记的十个要点
- [LeetCode] Substring with Concatenation of All Words
- vs2005调试ASP时端口更改
- Java8新特性——Map的新方法
- [OJ]合唱队【未解决】
- 数组 反转 反序
- RedHatLinux下的网络配置基础
- First Missing Positive
- java调用js
- 线程同步经典问题——生产者消费者问题
- 用Cywgin+OpenSSH+OpenSSL搭建SSH客户端及服务器
- win 配置iis