stream根据条件过滤List<Object>

List<String> filterUser= new ArrayList<>();
filterUser.add("张三");
List<User> userList = new ArrayList<>();
userList .add(new User("张三"));
userList .add(new User("李四"));

userList = userList .stream().filter(
item -> filterUser.contains(item.getName())//与filterUser中名字一样的数据会保留下来
).collect(Collectors.toList());

结果是:userList中只包含 "张三" 这个人的信息

filter中的条件为true代表当前元素会保留下来

 

lamb 表达式处理list 集合一般有filter 操作时,不用并行流parallelStream ,如果用的话可能会导致线程安全问题 判断对象要重写hash


 参考: Java Lambda 表达式-Steam之两个list间交集、并集、差集

 

posted @ 2019-11-21 12:38  弓长张&木子李  阅读(3603)  评论(0编辑  收藏  举报