这个错误是因为stream已经进行完终止操作,又去进行中间操作
下面这个运行就会报上面的错误
//1.集合转化成流
Stream<User> stream = userList.stream();
//年龄大于25岁
List<User> collect = stream.filter(new Predicate<User>() {
@Override
public boolean test(User user) {
return user.getAge() > 25;
}
}).collect(Collectors.toList());
//年龄大于25岁
List<User> collect5 = stream.filter(user -> user.getAge() > 25).collect(Collectors.toList());
解决办法时,重新创建一个stream流
记住这句话:
终止操作符就是对数据进行收集或者消费的,数据到了终止操作这里就不会向下流动了,终止操作符只能使用一次。