【发布时间】:2019-11-22 02:19:44
【问题描述】:
我正在尝试将两个foreach 循环和一个if 语句转换为一个流。
这是我要转换的内容:
for (ViewFlightRouteAirportType associatedAirportType : etopsAndNonEtopsAssociatedAirportTypes) {
for (ViewFlightAirportDTO airport : flightRoute.getAirportsForType(associatedAirportType)) {
if ( airportIataCode.equals(airport.getIataCode()) ) {
addValueIfNotPresent(associatedFlights, associatedAirportType, flightData);
}
}
}
etopsAndNonEtopsAssociatedAirportTypes 是一个数组。
airportIataCode 是字符串
这是我写的:
Arrays.stream(etopsAndNonEtopsAssociatedAirportTypes)
.forEach(associatedAirportType -> flightRoute.getAirportsForType(associatedAirportType)
.forEach(airport -> flightRoute.getAirportsForType(associatedAirportType)
.stream()
.filter(p -> p.equals(airport.getIataCode())).forEach(addValueIfNotPresent(associatedFlights,associatedAirportType,flightData);
它不需要也不起作用,但对我来说它看起来很丑。它应该是什么样子?
【问题讨论】:
标签: java for-loop if-statement java-stream