先准备数据吧

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用于数据格式转换或只提取需要的数据