filter对象由两个参数java组成

时间:2018-05-28 15:05:40

标签: java java-stream

我有一个User对象列表,它包含Date字符串,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)

过滤

我尝试了类似这样的无效工作

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

1 个答案:

答案 0 :(得分:4)

您当前的方法不正确,因为您没有使用代表c对象的标识符User,并且您正在检查userList是否包含字符串又是不正确的。

filter应该是:

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