欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

再次出发:JDK1.8中Map新特性

程序员文章站 2022-06-06 16:42:37
...

JDK1.8中Map新特性

import java.util.HashMap;
import java.util.Map;

/**
 * JDK1.8中Map新特性
 * 
 * @author 25316
 *
 */
public class test02 {

	public static void main(String[] args) {
		Map<Integer, String> map = new HashMap<>();
		map.put(1, "Tom");
		map.put(2, "Jack");
		map.put(3, "Lily");

		// 当key没有时,使用getOrDefault方法,不用判断空
		String str = map.getOrDefault(4, "null");
		System.out.println(str);
		
		//当key相同已有,使用putIfAbsent方法可以不覆盖key和value,如果直接添加会覆盖value
//		map.put(3, "lei");
//		map.forEach((key,value)->System.out.println(key+"->"+value));覆盖value
		map.putIfAbsent(3, "lei");
		map.forEach((key,value)->System.out.println(key+"->"+value));
		
		System.out.println("--------");
		//replace方法,覆盖掉已有key的value
		map.replace(3, "wu");
		map.replace(2, "Jack", "zhi");//必须传入老value,否则覆盖不成功
		map.forEach((key,value)->System.out.println(key+"->"+value));
		
		System.out.println("--------");
		//compute方法,拼接value
		map.compute(7, (key,value)->value+"1");//如果key为空,则结果为7->null1
		map.computeIfAbsent(5, (value)->value+"test");//仅当key为空时处理,否则处理
		map.forEach((key,value)->System.out.println(key+"->"+value));
		
		
		

	}

}

相关标签: JDK1.8中Map新特性