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);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Правильная ли такая реализация потокобезопасного Singleton? И как его можно ещё реализовать без применения synchronized и volatile?
Есть два поля начальная дата и конечная дата На входе получить начальная дата c текущей датой, конечная дата должна быть выше начальная дата,...