Java 8中Map新增了不少新方法,下面将演示常见方法的典型应用。
1 代码示例
import java.util.*;
public class MapTest2
{
public static void main(String[] args)
{
Map map = new HashMap();
// 成对放入多个key-value对
map.put("Java学习" , 109);
map.put("Linux操作指南" , 99);
map.put("电脑黑客攻防" , 79);
// 尝试替换key为"疯狂XML讲义"的value,由于原Map中没有对应的key,
// 因此对Map没有改变,不会添加新的key-value对
map.replace("疯狂XML讲义" , 66);
System.out.println(map);
// 使用原value与参数计算出来的结果覆盖原有的value
map.merge("Linux操作指南" , 10 ,
(oldVal , param) -> (Integer)oldVal + (Integer)param);
System.out.println(map); // "Linux操作指南"的value增大了10
// 当key为"Java"对应的value为null(或不存在时),使用计算的结果作为新value
map.computeIfAbsent("Java" , (key)->((String)key).length());
System.out.println(map); // map中添加了 Java=4 这组key-value对
// 当key为"Java"对应的value存在时,使用计算的结果作为新value
map.computeIfPresent("Java",
(key , value) -> (Integer)((String)key).length() * (Integer)value);
System.out.println(map); // map中 Java=4 变成 Java=16
}
}
2 运行结果
{Java学习=109, Linux操作指南=99, 电脑黑客攻防=79}
{Java学习=109, Linux操作指南=109, 电脑黑客攻防=79}
{Java=4, Java学习=109, Linux操作指南=109, 电脑黑客攻防=79}
{Java=16, Java学习=109, Linux操作指南=109, 电脑黑客攻防=79}
3 代码分析
本程序演示了Java 8中新增的4个方法,代码中已详细注释了这4个方法的应用。