Для создания класса Phone нам нужно определить его поля - название производителя, название модели и стоимость. Затем мы можем создать ArrayList из нескольких объектов класса Phone. Для создания ArrayList моделей конкретного производителя с помощью Stream API, мы можем использовать метод filter() для фильтрации объектов по производителю, а затем метод map() для преобразования объектов в их названия моделей.
Пример кода для создания класса Phone и ArrayList из нескольких его объектов:
public class Phone implements Comparable {
private String manufacturer;
private String model;
private double price;
public Phone(String manufacturer, String model, double price) {
this.manufacturer = manufacturer;
this.model = model;
this.price = price;
}
public String getManufacturer() {
return manufacturer;
}
public String getModel() {
return model;
}
public double getPrice() {
return price;
}
@Override
public int compareTo(Phone other) {
return Double.compare(this.price, other.price);
}
}
ArrayList phones = new ArrayList<>();
phones.add(new Phone("Apple", "iPhone 12", 799.99));
phones.add(new Phone("Samsung", "Galaxy S21", 699.99));
phones.add(new Phone("Google", "Pixel 5", 699.99));
phones.add(new Phone("OnePlus", "9 Pro", 969.99));
Для сортировки списка объектов класса Phone по стоимости и вывода названий моделей и стоимости, мы можем использовать метод sorted() для сортировки объектов по их стоимости, а затем метод forEach() для вывода названий моделей и их стоимости.
Пример кода для сортировки и вывода списка объектов класса Phone:
phones.stream()
.sorted()
.forEach(p -> System.out.println(p.getModel() + " - $" + p.getPrice()));
Результат выполнения кода будет выглядеть следующим образом:
Samsung Galaxy S21 - $699.99
Google Pixel 5 - $699.99
Apple iPhone 12 - $799.99
OnePlus 9 Pro - $969.99
Реализуйте интерфейс Comparable для класса Phone из предыдущего задания так, чтобы модели сортировались по стоимости. С помощью StreamAPI отсортируйте список объектов класса Phone и выведите названия моделей и стоимость.