搜索
您的当前位置:首页正文

Java8转化List对象实体,为一个Map

来源:步旅网

Collectors.toMap,value没有空值,key相同时覆盖旧的value

Map<String, String> map = list.stream().collect(Collectors.toMap(ProductInfoDo::getProductId, ProductInfoDo::getExpireDay,(oldValue, newValue) -> newValue));

Collectors.toMap,value有空值,报空指针异常,解决办法(用Optional.ofNullable判断value为空的时候,设置默认值)

Map<String, List<MasterPropertyData>> datas2map=datas.stream().collect(Collectors.groupingBy(ss->ss.getMasterData().getId()));
List<Map<String, Object>> fieldVals=datas2map.keySet().stream().map(key -> {
	Map<String, Object> map=new HashMap<>();
	map.put("id",key);
	List<MasterPropertyData> valList=datas2map.get(key);
	Map<String, Object> valList2map=valList.stream().collect(Collectors.toMap(o->o.getMasterProperty().getName(),o->Optional.ofNullable(o.getValue()).orElse("")));
	map.putAll(valList2map);
	return map;
}).collect(Collectors.toList());

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top