Java8 流操作示例代码

数据获取:从集合中获取某属性的列表

JSONArray arrPatient = DAO.newCommonBusinessDAO().getRealPatient(centerId,startDate,endDate,institutionCode,bFlag305);
//统计人数列表
List<String> lsPatientIdSatisticAccurate = lsPatientIdSatistic;//统计人数中的患者ID列表

arrPatient.stream().forEach(o-> lsPatientIdSatisticAccurate.add(((JSONObject)o).getString("patientId")));

数据筛选:已知目标数据属性,从大的集合中把目标数据筛选出来

  Set<String> setMappedId = mapItemName2ItemIdSet.get("血红蛋白");
  //获取 setMappedId 中的项目
  JSONArray arrHb = hisTestReportArray.stream().filter(o-> setMappedId.contains( ((JSONObject)o).getString("itemId"))).collect(Collectors.toCollection(JSONArray::new));
if(arrHb!=null && arrHb.size()>0){
 JSONObject joHb = arrHb.getJSONObject(arrHb.size()-1);//获取最后一个
 
                            }

 
xueHongDanBaiUnitElement.setText(arrHb.size()==0?"g/L":arrHb.getJSONObject(arrHb.size()-1).getString("unit"));

数据筛选:筛选出数据集中在某个日期之前的数据

     JSONArray arrVasAcc = DAO.newDataPackageExportDao().getPatientVasAcc(institutionCode, dateStart, dateEnd, patientId, dbo);
        if(arrVasAcc != null && arrVasAcc.size()>0){
            //结束时间之前建立的最近一条通路
            JSONArray arrReal = arrVasAcc.stream().filter(c->
                StringUtils.isNotBlank(((JSONObject) c).getString("vascularAccessDate")) && ((JSONObject) c).getString("vascularAccessDate").compareTo(dateEnd)<0
            ).collect(Collectors.toCollection(JSONArray::new));
        }

分组

   // 将基础信息表和检验、检查数据表分开
            Map<String, List<Object>> mapTableAll = arrTableAll.stream().collect(Collectors.groupingBy(o -> {
                JSONObject obj = (JSONObject) o;
                return obj.getString("isTestReport");
            }));
 // 13张基础信息表
            List<Object> basicInfoList = mapTableAll.get("0");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值