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);
}
}
Java 集合之HashMap1.8的新特性使用
最新推荐文章于 2025-02-20 16:55:39 发布