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

public class MapDemo {
    public static void main(String[] args) {
        Map m = new HashMap();
        /**
         * 获取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 c = m.values();
        Object[] arr = c.toArray();
        System.out.println(Arrays.toString(arr));//[Kevin, Mart, Keety]

        /**
         * 定义一个接收foreach集合map的动作函数,在accept方法中实现一些东西!
         * 
         * 1.8的新特性
         * 
         */
        BiConsumer action = new BiConsumer() {
            @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的函数,需要实现apply(Object t, Object u)方法。
         *      apply方法参数的含义:第一个t是对应于key的value,u是merge的第二个参数msg
         */
        BiFunction function = new BiFunction(){
            @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 remappingFunction = new BiFunction(){

            @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);

    }
} 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(JAVA,SE)