Всем доброго времени суток. Помогите, пожалуйста, я что-то запутался. - нужно вызывать метод findFirst() объекта. Зачем? как я понимаю, мы находим максимальную цену в 1 массиве, а во втором массиве, я беру результат с первого и сравниваю его со всем 2 массивом.Так зачем мне вызывать первый элемент результата 1 функции, и очевидно, я что-то не так в сравнении делаю. Подскажите, как это сделать. package com.javarush.task.pro.task18.task1820; import java.util.Optional; import java.util.stream.Stream; import static java.util.Comparator.comparingInt; /* Самый дорогой автомобиль */ public class Solution { public static void main(String[] args) { var tesla = Stream.of( new Car("Model S", 94_490), new Car("Model 3", 50_690), new Car("Model X", 99_690), new Car("Model Y", 65_000) ); var bmw = Stream.of( new Car("X5", 110_000), new Car("X3", 54_000), new Car("X7", 143_000), new Car("X6", 125_000) ); Optional<Car> mostExpensiveCar = getMostExpensiveCar(tesla); mostExpensiveCar.ifPresent(System.out::println); Optional<Car> moreExpensiveCar = mostExpensiveCar.flatMap(car -> getMoreExpensiveCar(bmw, car)); moreExpensiveCar.ifPresent(System.out::println); } public static Optional<Car> getMostExpensiveCar(Stream<Car> cars) { return cars.max((num1, num2) -> num1.getPrice() - num2.getPrice()); } public static Optional<Car> getMoreExpensiveCar(Stream<Car> cars, Car mostExpensiveCar) { //напишите тут ваш код return cars.max((num1, num2) -> num1.getPrice() - num2.getPrice()); } } class Car { private String name; private Integer price; public Car(String name, Integer price) { this.name = name; this.price = price; } public String getName() { return name; } public Integer getPrice() { return price; } @Override public String toString() { return "Автомобиль " + name + ", цена - " + price + " USD"; } }