Определение автомобиля с максимальной датой выпуска

Используйте max с Comparator.comparing(Car::getCreationDate). Он сравнит даты и вернёт Optional<Car>, не сортируя весь список.

Короткий ответ

Что ответить на собеседовании

Используйте max с Comparator.comparing(Car::getCreationDate). Он сравнит даты и вернёт Optional<Car>, не сортируя весь список.

Подробный разбор

Ответ с пояснениями

Условие

Класс Car хранит дату выпуска в поле creationDate типа LocalDate. Создайте три объекта Car с различными датами выпуска, поместите их в список и найдите элемент, у которого дата выпуска самая поздняя.

public class Car {
    private LocalDate creationDate;

    public Car(LocalDate creationDate) {
        this.creationDate = creationDate;
    }

    public LocalDate getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(LocalDate creationDate) {
        this.creationDate = creationDate;
    }
}

Ответ

Используйте max с Comparator.comparing(Car::getCreationDate). Он сравнит даты и вернёт Optional<Car>, не сортируя весь список.

List<Car> cars = List.of(
        new Car(LocalDate.of(2020, 5, 10)),
        new Car(LocalDate.of(2024, 3, 1)),
        new Car(LocalDate.of(2022, 8, 20)));
Optional<Car> latest = cars.stream()
        .max(Comparator.comparing(Car::getCreationDate));

Выбран автомобиль с датой 2024-03-01. Импорты LocalDate из java.time, коллекций и Comparator из java.util. Время O(n), дополнительная память O(1). Null-автомобили и null-даты не предусмотрены; если они допустимы, нужно явное правило фильтрации. При равной дате любой максимум подходит.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее