cakin24 阅读(362) 评论(0)

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