java stream系列常用map、filter

先准备数据吧


image

数据来源:城镇危旧房信息

[{"type":"C","city":"杭州市淳安县","street":"威坪镇西山村","type2":"泥木结构","desc":"农村危旧房信息","area":"杭州市淳安县"},
{"type":"C","city":"金华市婺城区","street":"白龙桥镇虹路","type2":"砖木结构","desc":"农村危旧房信息","area":"金华市婺城区"},
{"type":"C","city":"温州市乐清市","street":"天成街道巨光村","type2":"砖混结构","desc":"农村危旧房信息","area":"温州市乐清市"},
{"type":"D","city":"绍兴市诸暨市","street":"陶朱街道白门下村","type2":"泥木结构","desc":"农村危旧房信息","area":"绍兴市诸暨市"},
{"type":"D","city":"衢州市柯城区","street":"沟溪乡高山窑村","type2":"砖木结构","desc":"农村危旧房信息","area":"衢州市柯城区"},
{"type":"C","city":"丽水市缙云县","street":"新建镇新建村","type2":"泥木结构","desc":"农村危旧房信息","area":"丽水市缙云县"},
{"type":"D","city":"绍兴市新昌县","street":"小将镇南洲村","type2":"砖木结构","desc":"农村危旧房信息","area":"绍兴市新昌县"},
{"type":"C","city":"衢州市柯城区","street":"石梁镇静岩村","type2":"其他","desc":"农村危旧房信息","area":"衢州市柯城区"},
{"type":"C","city":"温州市龙港市","street":"江山片区龙源社区","type2":"木结构","desc":"农村危旧房信息","area":"温州市龙港市"},
{"type":"D","city":"金华市开发区","street":"罗埠镇孙家村","type2":"泥木结构","desc":"农村危旧房信息","area":"金华市开发区"},
{"type":"C","city":"金华市武义县","street":"柳城镇东西村","type2":"木结构","desc":"农村危旧房信息","area":"金华市武义县"},
{"type":"C","city":"衢州市常山县","street":"紫港街道孔家弄村","type2":"砖木结构","desc":"农村危旧房信息","area":"衢州市常山县"},
{"type":"C","city":"金华市磐安县","street":"安文街道卢坎头村","type2":"泥木结构","desc":"农村危旧房信息","area":"金华市磐安县"},
{"type":"C","city":"衢州市开化县","street":"马金镇徐塘村","type2":"砖木结构","desc":"农村危旧房信息","area":"衢州市开化县"},
{"type":"C","city":"丽水市莲都区","street":"碧湖镇龙岩村","type2":"砖木结构","desc":"农村危旧房信息","area":"丽水市莲都区"},
{"type":"C","city":"丽水市龙泉市","street":"安仁镇张畈村","type2":"泥木结构","desc":"农村危旧房信息","area":"丽水市龙泉市"},
{"type":"C","city":"湖州市安吉县","street":"杭垓镇七管村","type2":"泥木结构","desc":"农村危旧房信息","area":"湖州市安吉县"},
{"type":"C","city":"衢州市衢江区","street":"高家镇林家村","type2":"泥木结构","desc":"农村危旧房信息","area":"衢州市衢江区"}]

实体类:

public class DecrepitHouseInfo {
    private String type;
    private String city;
    private String street;
    private String type2;
    private String desc;
    private String area;
}

需求:
获取危房中C级、泥木结构的房屋地址信息:

@Test
     public void streamFilterAndMap(){
          List<String> addressList = data.toJavaList(DecrepitHouseInfo.class).stream().filter(item -> {
               //filter 过滤目标,返回值true:保留  返回值false:不保留
              return "C".equals(item.getType()) && "泥木结构".equals(item.getType2());
          }).map(item ->{
               //map 映射 可改变数据结构,添加、删除、组合数据均可
               return item.getCity()+item.getStreet();
          }).collect(Collectors.toList());
          System.out.println(JSON.toJSON(addressList));
     }

返回结果

["杭州市淳安县威坪镇西山村","丽水市缙云县新建镇新建村","金华市磐安县安文街道卢坎头村","丽水市龙泉市安仁镇张畈村","湖州市安吉县杭垓镇七管村","衢州市衢江区高家镇林家村"]

总结

filter、map是stream中常用的功能,filter一般用于过滤,map用于数据格式转换或只提取需要的数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容