zoukankan      html  css  js  c++  java
  • Java 集合之HashMap1.8的新特性使用

    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);
    		
    	}
    }
    
  • 相关阅读:
    引入background和background-size不显示图片
    vue,新手上路,基础,常见问题
    Java设置环境变量
    JS判断是否是手机登录及类型
    Mongodb查询语句与Sql语句对比
    IIS7下使用urlrewriter.dll配置
    反射获取属性
    数据库Convert关于时间取值
    JS实现嵌套Iframe页面F11全屏效果
    针对上次表格编辑的打印问题及解决方案
  • 原文地址:https://www.cnblogs.com/Kevin-1992/p/12608400.html
Copyright © 2011-2022 走看看