上級 › stream has already been operated upon の原因と直し方 › パターン3
stream has already been operated upon の原因と直し方
Streamは1回しか終端操作できません。
1 import java.util.List; 2 3 public class Main { 4 public static void main(String[] args) { 5 List.of(1, 2, 3).stream().filter(n -> n > 1)_____________________________; ^ 6 System.out.println("done"); 7 } 8 }
出力: done のみ(filterは中間操作なので何も起きません)
空欄を埋めてビルドを通す
中間操作は終端操作が呼ばれるまで実行されません。これを遅延評価と呼びます。
次の問題