java8 多条件的filter过滤
java8 多条件的filter过滤
package com.example.core.mydemo.java; import java.io.Serializable;
import java.time.LocalDateTime; public class CostSettleDetailEntity implements Serializable {
private static final long serialVersionUID = 1L; /**
* id
*/
private Integer id;
/**
* 主订单号
*/
private String orderNo;
/**
* 会员号
*/
private String memNo;
/**
* 金额
*/
private Integer amt;
/**
* 费用编码
*/
private String sourceCode;
/**
* 费用来源描述
*/
private String sourceDetail;
/**
* 费用唯一凭证
*/
private String uniqueNo;
/**
* 费用类型
*/
private Integer costType;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 创建人
*/
private String createOp;
/**
* 修改时间
*/
private LocalDateTime updateTime;
/**
*
*/
private String updateOp;
/**
* 0-正常,1-已逻辑删除
*/
private Integer isDelete; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getOrderNo() {
return orderNo;
} public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
} public String getMemNo() {
return memNo;
} public void setMemNo(String memNo) {
this.memNo = memNo;
} public Integer getAmt() {
return amt;
} public void setAmt(Integer amt) {
this.amt = amt;
} public String getSourceCode() {
return sourceCode;
} public void setSourceCode(String sourceCode) {
this.sourceCode = sourceCode;
} public String getSourceDetail() {
return sourceDetail;
} public void setSourceDetail(String sourceDetail) {
this.sourceDetail = sourceDetail;
} public String getUniqueNo() {
return uniqueNo;
} public void setUniqueNo(String uniqueNo) {
this.uniqueNo = uniqueNo;
} public Integer getCostType() {
return costType;
} public void setCostType(Integer costType) {
this.costType = costType;
} public LocalDateTime getCreateTime() {
return createTime;
} public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
} public String getCreateOp() {
return createOp;
} public void setCreateOp(String createOp) {
this.createOp = createOp;
} public LocalDateTime getUpdateTime() {
return updateTime;
} public void setUpdateTime(LocalDateTime updateTime) {
this.updateTime = updateTime;
} public String getUpdateOp() {
return updateOp;
} public void setUpdateOp(String updateOp) {
this.updateOp = updateOp;
} public Integer getIsDelete() {
return isDelete;
} public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
} package com.example.core.mydemo.java; import java.util.ArrayList;
import java.util.List; /**
* filter过滤查询costType = 5 或者 costType=50的费用综合
* output: fineAmt-1 = 399
* fineAmt-2 = 0
* fineAmt-3 = 199
*/
public class CostSettleFilterTest {
public static void main(String[] args) {
List<CostSettleDetailEntity> costSettleDetails = new ArrayList<CostSettleDetailEntity>();
CostSettleDetailEntity entity = new CostSettleDetailEntity();
entity.setOrderNo("3418639");
entity.setMemNo("635206016");
entity.setAmt(99);
entity.setSourceCode("4");
entity.setSourceDetail("取消订单违约金");
entity.setCostType(5);
costSettleDetails.add(entity); entity = new CostSettleDetailEntity();
entity.setOrderNo("444186390");
entity.setMemNo("635206016");
entity.setAmt(100);
entity.setSourceCode("5");
entity.setSourceDetail("取消订单违约金");
entity.setCostType(50);
costSettleDetails.add(entity); entity = new CostSettleDetailEntity();
entity.setOrderNo("5699556");
entity.setMemNo("635206016");
entity.setAmt(200);
entity.setSourceCode("6");
entity.setSourceDetail("取消订单违约金");
entity.setCostType(6);
costSettleDetails.add(entity); //求和
int fineAmt11 =costSettleDetails.stream().mapToInt(CostSettleDetailEntity::getAmt).sum();
System.out.println("fineAmt-1 = " + fineAmt11); //这样写不对,等于是双重过滤了。筛选不了结果
int fineAmt22 =costSettleDetails.stream().filter(obj ->{
return obj.getCostType() != null && 5 == obj.getCostType(); // 5
}).filter(obj ->{
return obj.getCostType() != null && 50 == obj.getCostType(); // 50
}).mapToInt(CostSettleDetailEntity::getAmt).sum();
System.out.println("fineAmt-2 = " + fineAmt22); //正确写法,在filter条件里面写 || 或的条件。
int fineAmt33 =costSettleDetails.stream().filter(obj ->{
return obj.getCostType() != null && ( 5 == obj.getCostType() || 50 == obj.getCostType()); // 5 50
}).mapToInt(CostSettleDetailEntity::getAmt).sum();
System.out.println("fineAmt-3 = " + fineAmt33); }
}
java8 多条件的filter过滤的更多相关文章
- Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
内容简介 本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合. List对象类(StudentInfo) public clas ...
- stark组件之delete按钮、filter过滤
1.构建批量删除按钮 2.filter过滤 3.总结+coding代码 1.构建批量删除按钮 1.admin中每个页面默认都有 2.stark之构建批量删除 3.coding {% extends ' ...
- django 模型类的常见字段约束,以及filter 过滤和查询
null 不设置时默认设置为False.设置为True时,数据库表字段中将存入NULL的记录. null和blank组合使用,null=True,blank=True,表示该字段可以为空 blank ...
- Java Filter过滤xss注入非法参数的方法
http://blog.csdn.NET/feng_an_qi/article/details/45666813 Java Filter过滤xss注入非法参数的方法 web.xml: <filt ...
- js--数组的filter()过滤方法的使用
前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ...
- Android利用Filter过滤数据
MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; imp ...
- filter过滤action的问题
今天犯了一个错误,结果白白浪费了半个下午的时间,特记于此. filter过滤Action的时候,要把过滤器配置在Struts2拦截器的前面,这样过滤器才能过滤到Action,否则不可以.
- 【原创】Easyui tree filter 过滤本地数据无效的原因
Easyui tree filter 过滤本地数据无效的解决方式 正确使用方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- angular 如何获取使用filter过滤后的ng-repeat的数据长度
在做项目的过程中,被产品要求在内容为空的过程中显示提示信息,然哦户内容使用ng-repeat循环输出的,并且使用了filter过滤.后在谷歌上找到解决方案,如下: 之前代码如下显示: <ul& ...
- Java Servlet (1) —— Filter过滤请求与响应
Java Servlet (1) -- Filter过滤请求与响应 版本: Java EE 6 参考来源: Oracle:The Java EE 6 Tutorial: Filtering Reque ...
随机推荐
- 阿里云全站加速DCDN重磅升级
简介:相比传统CDN加速,全站加速DCDN具有更广阔的应用场景.在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制.从内容分发到安全防 ...
- 为什么Spring仍然会是云原生时代最佳平台之一?
简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native.Serverless.Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下 ...
- 编译优化 | LLVM代码生成技术详解及在数据库中的应用
简介: 作者:长别 1. 前言 随着IT基础设施的发展,现代的数据处理系统需要处理更多的数据.支持更为复杂的算法.数据量的增长和算法的复杂化,为数据分析系统带来了严峻的性能挑战.近年来,我们可以在数据 ...
- UWP WinRT 使用系统自带的分词库对字符串文本进行分词
本文将和大家介绍在 UWP 应用,或其他能接入 WinRT 的应用里,使用系统自带的分词库,对中文.英文等等自然语言的字符串文本进行分词 开始之前需要说明的是,现在不仅仅 UWP 应用,其他的 UI ...
- dotnet 6 使用 DependentHandle 关联对象生命周期
本文将告诉大家在 dotnet 6 新加入的 System.Runtime.DependentHandle 的类型的使用方法,通过 DependentHandle 可以实现将某个对象的引用生命周期和另 ...
- WPF 简单聊聊如何使用 DrawGlyphRun 绘制文本
在 WPF 里面,提供的使用底层的方法绘制文本是通过 DrawGlyphRun 的方式,此方法适合用在需要对文本进行精细控制的定制化控件上.此方法特别底层而让调用方法比较复杂,本文告诉大家一些简单的使 ...
- VisualStudio 调试时会不断刷新 WPF 应用渲染
在 VisualStudio 附加调试和没有用 VisualStudio 附加调试时,对应用程序是有不同的影响,如 VisualStudio 设计器将会在附加调试 WPF 应用的时候,不断刷新 WPF ...
- PHP实现没有数据库提交form表单到后台并且显示出数据列表(Vuejs和Element-UI前端设计表单)
1.情境:如果你新建了个网站,却没有数据库服务器,如何把你的表单信息,提交到服务端后台,收集数据. 2.思路:如果用传统的form action 提交到一个form.php页面,此时只能存储一次数据, ...
- leaflet 基本案例-图层控件:基础图层+业务图层
可执行示例一个,如下: <!DOCTYPE html> <html> <head> <title>Layers Control Tutorial - L ...
- IDEA文件夹注释插件TreeInfotip使用
目录 前景提要 环境整合 构建工具(参考工具部署方式) 下载插件 使用 前景提要 很多开源代码或者公司代码,因为层级比较多,所以查阅困难,发现一个TreeInfotip插件可以对这样的文件做注释 环境 ...