private int chooseTaxi(District whereIsClient) {
int taxiIndex = 0;
int distance;
int minDistance = 10;
for (Taxi taxi : taxis) {
if ((distance = District.calcDistance(taxi.getLocation(), whereIsClient)) < minDistance) {
minDistance = distance;
taxiIndex = taxis.indexOf(taxi);
}
}
return taxiIndex;
}
Метод должен возвратить индекс такси, для которого будет выгоднее всего подъехать к whereIsClient. taxis - LinkedList, calcDistance - вычисляет расстояние между клиентом и такси. Как это переписать с использованием stream? Если возможно, конечно.
Можно написать следующим образом:
int taxiIndex = taxis.stream()
.min(Comparator.comparing(
taxi -> District.calcDistance(taxi.getLocation(), whereIsClient)
))
.map(taxis::indexOf)
.orElse(-1);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости