使用Java8流的java筛选列表
我有一个客户对象列表,如下所示:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class CheckForResource {
public static void main(String[] args) {
Customer john = new Customer("111", "P_1", "daily",
"create", "table_1", "03-05-2020",
"03-05-2020", "140");
Customer mary = new Customer("111", "P_1", "daily",
"delete", "table_1", "03-05-2020",
"03-05-2020", "30");
Customer joseph = new Customer("222", "P_2", "weekly",
"create", "table_2", "03-05-2020",
"03-05-2020", "50");
Customer jason = new Customer("222", "P_2", "daily",
"update", "table_2", "03-05-2020",
"03-05-2020", "40");
Customer mario = new Customer("111", "P_1", "weekly",
"create", "table_1", "03-05-2020",
"03-05-2020", "20");
Customer danny = new Customer("111", "P_1", "monthly",
"update", "table_1", "03-05-2020",
"03-05-2020", "100");
List<CheckForResource.Customer> customers = Arrays.asList(john, mary, joseph, jason, mario, danny);
}
public static class Customer {
final String Id;
final String pCode;
final String usageType;
final String operation;
final String resource;
final String startTime;
final String endTime;
final String value;
public Customer(String id, String pCode, String usageType, String operation,
String resource, String startTime, String endTime, String value) {
Id = id;
this.pCode = pCode;
this.usageType = usageType;
this.operation = operation;
this.resource = resource;
this.startTime = startTime;
this.endTime = endTime;
this.value = value;
}
}
}
如果列表中至少有以下各子句的1个条目,我想返回true
- customerId=“111”,operation=“创建”,usageType=“每日”
- customerId=“111”,operation=“创建”,usageType=“每月”
- customerId=“111”,operation=“删除”,usageType=“每日”
- customerId=“111”,operation=“删除”,usageType=“每月”
- customerId=“111”,operation=“update”,usageType=“daily”
- customerId=“111”,operation=“update”,usageType=“monthly”
我如何使用蒸汽来实现这一点
# 1 楼答案
您可以使用
.anyMatch()
# 2 楼答案
试着这样做:
基于
operation
和usageType
创建谓词列表确定是否满足条件
构造谓词列表