我有一个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());
答案 0 :(得分:4)
您当前的方法不正确,因为您没有使用代表c
对象的标识符User
,并且您正在检查userList
是否包含字符串又是不正确的。
而filter
应该是:
userList.stream()
.filter(c -> c.getDate().equals(date))
.collect(Collectors.toList());