一、java8 stream 操作
List<Map<String, Object>> maps 转 Map<String, Object>的两种方法
第一种,实用于数据查询返回的是List<Map<String, Object>> maps
方法一、
Map<String, Object>; resultMap = lists
.stream()
.flatMap(map ->map.entrySet().stream())
.collect(Collectors.toMap(e ->e.getKey(), e->e.getValue(),(a,b)->a)));
方法二、
Map<String, Object> map = maps.stream()
.map(Map::entrySet)
.flatMap(Set::stream)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(a,b)->a)));
注意!这种转换方法后面的(a,b)->a这个是必须的,因为list转map可能会出现key值重复的情况,如果不指定去重规则,转换的时候是会报错的
第二种,实用于数据查询返回的是List maps
Map<String, Object>; resultMap = lists
.stream()
.collect(Collectors.toMap(Entry::getProtity, Entry::getProtity,(a,b)->a)));
这种实体类list就比较容易,在这个过程中还可以进行条件过滤,filter 或者排序 reversed,用到时加进去就可以,这里就不赘述了