在jdk8中的stream流中使用filter处理数据

背景:前端要求只要对象特定的字段值,其他字段全部不要传前端说是为了安全,我能怎么办,前端要啥我做啥呗。后端的DAO层写的通用查询方法,返回一个对象集合,然后因为对象中又包含了各种各样的属性,因为懒不想去专门写个特定的mapper接口。为了只拿到特定的属性于是想到了使用jdk8的stream流中的filter。

注意!!!steam流处理数据建议在service层实现类里面写,我这里为了演示,图方便就在controller接口层写了
数据处理前:

处理前,有多个属性

用List<8大基本数据类型>封装

    @GetMapping("/selectExamStationList")
    public String examStationList(@RequestParam  Long examManageId, ModelMap map){
        HsExamStationRelation stationRelation=new HsExamStationRelation();
        //状态正常标识
        stationRelation.setStatus("0");
        //未删除标识
        stationRelation.setDelFlag("0");
        stationRelation.setExamManageId(examManageId);
        List<HsExamStationRelation> relationList=hsExamStationRelationService.selectHsExamStationRelationList(stationRelation);
            List<Long> list=relationList.stream()
            .filter(relation->relation.getExamManageId()!=null)
            .map(HsExamStationRelation::getExamManageId)
            .collect(Collectors.toList());
        map.put("selectedList",list);
        return examStationPrefix + "/selectExamStationList";
    }

 调试结果:

 处理后的数据只保留了我需要的examManageId值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值