Java 集合之HashMap1.8的新特性使用

本文通过示例介绍了 Java 1.8 中 Map 接口新增的方法,如 getOrDefault、forEach 和 merge 等,并展示了如何使用这些新特性来简化编程流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MapDemo {
	public static void main(String[] args) {
		Map<String,Object> m = new HashMap<String,Object>();
		/**
		 * 获取key对应的value,如果没有则显示默认值。
		 * 
		 * 1.8
		 */
		Object o = m.getOrDefault("heloo", "根本就没有,但是给它默认的我");
		System.out.println(o);
		
		m.put("1", "Kevin");
		m.put("2", "Mart");
		m.put("3", "Keety");
		//values 获取结果集合
		Collection<Object> c = m.values();
		Object[] arr = c.toArray();
		System.out.println(Arrays.toString(arr));//[Kevin, Mart, Keety]
		
		/**
		 * 定义一个接收foreach集合map的动作函数,在accept方法中实现一些东西!
		 * 
		 * 1.8的新特性
		 * 
		 */
		BiConsumer<String, Object> action = new BiConsumer<String, Object>() {
			@Override
			public void accept(String t, Object u) {
				System.out.println("key:"+t+",value:"+u);
			}
		};
		m.forEach(action);
		
		/**
		 * merge(key,msg,function)
		 * 	参数意义:key为map的键,msg是需要去处理的信息,function是接口为BiFunction<Object,Object,Object>的函数,需要实现apply(Object t, Object u)方法。
		 * 		apply方法参数的含义:第一个t是对应于key的value,u是merge的第二个参数msg
		 */
		BiFunction<Object,Object,Object> function = new BiFunction<Object,Object,Object>(){
			@Override
			public Object apply(Object t, Object u) {
				return t +":"+u;
			}
		};
		Object o1 = m.merge("2", "do job", function);
		System.out.println(o1);//Mart:do job
		
		/**
		 * compute类似于merge,merge更常用!
		 */
		BiFunction<String, Object, Object> remappingFunction = new BiFunction<String,Object,Object>(){

			@Override
			public Object apply(String t, Object u) {
				System.out.println("-----"+u);//null
				return null;
			}
			
		};
		Object o2 = m.compute("1", remappingFunction);
		System.out.println("o2-->"+o2);
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值