我在removeif()
上看到ArrayList
,但是当我做stream()
时,没有选择。是因为removeif()
更改了集合的大小并且流需要一个固定的大小才能工作?
答案 0 :(得分:2)
要从流中删除元素,可以使用.filter(e -> e.getId() == 4)
。示例:
removeif()
是因为
foreach($data as $obj) { echo $obj->data_; }
更改了集合的大小并且流需要一个固定的大小才能工作?
不,实际上流甚至可以处理无限多个对象
答案 1 :(得分:0)
Stream不会更改源集合,stream会从sorce(可能是集合,无限生成器)中获取元素,然后在映射的每个步骤将它们通过链(转换,过滤)传递,这将是一个新对象,然后收集结果中传递的内容(可能是集合,联接的字符串或Integer),并在变量中返回结果。它提供了声明式的样式和不变性,可以在多线程计算中做很多工作而没有副作用。