Java 用两个参数筛选对象

Java 用两个参数筛选对象,java,java-stream,Java,Java Stream,我有一个包含日期字符串、id和值的用户对象列表。如何筛选与日期值匹配的用户的ArrayList 用户对象是这样的 String accountId; String date; String value; User user = new User(); user.setAccountId("101"); user.setDate("20180506"); user.setValue("David"); ArrayList<User> userList

我有一个包含日期字符串、id和值的用户对象列表。如何筛选与日期值匹配的用户的ArrayList

用户对象是这样的

  String accountId;
  String date;
  String value;

  User user = new User();
  user.setAccountId("101");
  user.setDate("20180506");
  user.setValue("David");

  ArrayList<User> userList = new ArrayList<User>();
  userList.add(user)

您当前的方法不正确,因为您没有使用表示
用户
对象的标识符
c
,并且您正在检查
用户列表
是否包含再次不正确的字符串

相反,
过滤器应为:

userList.stream()
        .filter(c -> c.getDate().equals(date))
        .collect(Collectors.toList());

您当前的方法不正确,因为您没有使用表示
用户
对象的标识符
c
,并且您正在检查
用户列表
是否包含再次不正确的字符串

相反,
过滤器应为:

userList.stream()
        .filter(c -> c.getDate().equals(date))
        .collect(Collectors.toList());

实际上,您应该在筛选器lambda中以某种方式与
c
交互。您应该在筛选器lambda中以某种方式与
c
交互。