Java 8 Streams
の簡単な例を理解したいと思います。私は無料のタクシーを返すこのコードを持っています。私はtaxis
のリストを反復forループからJava 8ストリームへの例
private List<Taxi> taxis = new ArrayList<Taxi>();
Taxi scheduleTaxi(){
for (Taxi taxi : taxis) {
if (taxi.isFree()) {
return taxi;
}
}
return null;
}
、およびtaxi
点かの条件を評価する:私は、Java 8つのストリームを使用する同等のコードでループのためにこれを交換したいと思います。条件が適用される場合は、ループを停止してtaxi
を返します。
提案がありますか?
'return taxis.stream()。filter(Taxi :: isFree).findFirst()。orElse(null);'。最後のものは 'Stream'メソッドではなく' Optional'メソッドです。 – Andreas
'Stream'を使用する場合、Andreasは正しいですが、おそらく' orElse(null) 'を省略し、代わりに[' Optional '](https://docs.oracle.com /javase/8/docs/api/java/util/Optional.html)。これは、['ifPresent'](https://docs.oracle.com/javase/8/docs/api/)のような便利なメソッドを提供するのでjava/util/Optional.html#ifPresent-java.util.function.Consumer-) –
4castle
@ 4castle [長い回答](http://stackoverflow.com/a/39540979/5221149)を書くことにしました。あなたの提案。 – Andreas