java8 streamList转换使用

一、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,用到时加进去就可以,这里就不赘述了

猜你喜欢

转载自blog.csdn.net/lyy19931025/article/details/108010464