java8 streamList转换使用

一、java8 stream 操作

List> maps 转 Map的两种方法

第一种,实用于数据查询返回的是List> maps
方法一、

Map; resultMap = lists
        .stream()
        .flatMap(map ->map.entrySet().stream())
        .collect(Collectors.toMap(e ->e.getKey(), e->e.getValue(),(a,b)->a)));

方法二、

Map 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; resultMap = lists
        .stream()
        .collect(Collectors.toMap(Entry::getProtity, Entry::getProtity,(a,b)->a)));

这种实体类list就比较容易,在这个过程中还可以进行条件过滤,filter 或者排序 reversed,用到时加进去就可以,这里就不赘述了

你可能感兴趣的:(java开发心得,java,spring,boot,后端)