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
측면 경우 조건을 평가 : 나는 자바 8 개 스트림을 사용하여 해당 코드 루프이 대체하고 싶습니다. 조건이 적용되면 루프를 중지하고 taxi
을 반환합니다.
제안 사항? , 목록에서 스트림을 얻기 후에, 당신은 기본적으로 조 건을 고려한 filter
을 사용
'return taxis.stream(). filter (택시 :: isFree) .findFirst() .Else (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