如何使用Java 8流?

Ras*_*ool 2 java foreach java-8 java-stream

我想知道如何使用Java 8流以及如何使用不同类型的可用流操作.例如,我写了这部分代码:

ArrayList<State> toBeRemoved = new ArrayList<>();
for (State s : newStates)
     if (path.contains(s))     // path is a stack of State
         toBeRemoved.add(s);
for (State s : toBeRemoved)
     newStates.remove(s);
Run Code Online (Sandbox Code Playgroud)

我想用它重写它java 8 stream api calls.我该怎么做?

ass*_*ias 5

这里不需要流,您可以使用Collection#removeIf方法:

newStates.removeIf(path::contains);
Run Code Online (Sandbox Code Playgroud)

或者,如果pathCollection:

newStates.removeAll(path);
Run Code Online (Sandbox Code Playgroud)