Фильтровать объект по двум аргументам Java - PullRequest
0 голосов
/ 28 мая 2018

У меня есть объект списка пользователей, в котором есть строка даты, идентификатор и значение.Как мне отфильтровать 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 голосов
/ 28 мая 2018

Ваш текущий подход неверен, так как вы не используете идентификатор c, представляющий объект User, и вы проверяете, содержит ли userList строку, которая снова неверна.

вместо filter должно быть:

userList.stream()
        .filter(c -> c.getDate().equals(date))
        .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...