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个方法的应用。