Java8 Filter 通过集合contains可以批量过滤
Java8 Filter 通过集合contains可以批量过滤
package com.example.core.mydemo.javatest; import java.util.ArrayList; import java.util.List; /** * output: * ownerCostAmt=100 * ownerCostAmt2=600 * ownerCostAmt3=600 * ownerCostAmt4=600 * */ public class FilterTest { public static void main(String[] args) { List<OrderCostDetailDTO> list = new ArrayList<OrderCostDetailDTO>(); OrderCostDetailDTO dto = new OrderCostDetailDTO(); dto.setCostCode("111000"); dto.setTotalAmount(100); list.add(dto); dto = new OrderCostDetailDTO(); dto.setCostCode("211000"); dto.setTotalAmount(200); list.add(dto); dto = new OrderCostDetailDTO(); dto.setCostCode("311000"); dto.setTotalAmount(300); list.add(dto); //1.仅仅过滤的是一个编码 int ownerCostAmt = list.stream() .filter(obj -> ("111000".equals(obj.getCostCode()))) .mapToInt(OrderCostDetailDTO::getTotalAmount).sum(); System.out.println("ownerCostAmt=" + ownerCostAmt); //2.通过 || 或的关系,过滤3个编码 ownerCostAmt = list.stream() .filter(obj -> ( "111000".equals(obj.getCostCode()) || "211000".equals(obj.getCostCode()) || "311000".equals(obj.getCostCode()))) .mapToInt(OrderCostDetailDTO::getTotalAmount).sum(); System.out.println("ownerCostAmt2=" + ownerCostAmt); //3. 通过集合列表 过滤 3个编码 List<String> costCode = new ArrayList<String>(); costCode.add("111000"); costCode.add("211000"); costCode.add("311000"); ownerCostAmt = list.stream() .filter(obj -> (costCode.contains(obj.getCostCode()))) .mapToInt(OrderCostDetailDTO::getTotalAmount).sum(); System.out.println("ownerCostAmt3=" + ownerCostAmt); //4. 通过for循环过滤 3个编码 ownerCostAmt = 0; for (OrderCostDetailDTO ownerOrderPurchaseDetailDTO : list) { if(costCode.contains(ownerOrderPurchaseDetailDTO.getCostCode())){ ownerCostAmt += ownerOrderPurchaseDetailDTO.getTotalAmount(); } } System.out.println("ownerCostAmt4=" + ownerCostAmt); } }
package com.example.core.mydemo.javatest; import java.io.Serializable; public class OrderCostDetailDTO implements Serializable { private String costCode; private Integer totalAmount; public String getCostCode() { return costCode; } public void setCostCode(String costCode) { this.costCode = costCode; } public Integer getTotalAmount() { return totalAmount; } public void setTotalAmount(Integer totalAmount) { this.totalAmount = totalAmount; } }