13. Расскажите про метод sorted()
UNKNOWNДля простой сортировки по возрастанию применяется метод sorted(). Подходит только для сортировки тех объектов, которые реализуют интерфейс Comparable.
Если же у нас классы объектов не реализуют этот интерфейс или мы хотим создать какую-то свою логику сортировки, то мы можем использовать другую версию метода sorted(), которая в качестве параметра принимает компаратор.
class Phone{
private String name;
private String company;
private int price;
public Phone(String name,
String comp, int price){
this.name=name;
this.company=comp;
this.price = price;
}
public String getName() {
return name; }
public int getPrice() {
return price; }
public String getCompany() {
return company; }
}
import java.util.Comparator;
import java.util.stream.Stream;
public class Program {
public static void main(String[] args) {
Stream<Phone> phoneStream = Stream.of(new Phone(\"iPhone
X\", \"Apple\", 600),
new Phone(\"Pixel 2\", \"Google\", 500),
new Phone(\"iPhone 8\", \"Apple\",450),
new Phone(\"Nokia 9\", \"HMD Global\",150),
new Phone(\"Galaxy S9\", \"Samsung\", 300));
phoneStream.sorted(new PhoneComparator())
.forEach(p->System.out.printf(\"\%\s (\%\s) - \%\d \n\",
p.getName(), p.getCompany(), p.getPrice()));
}
}
class PhoneComparator implements Comparator<Phone>{
public int compare(Phone a, Phone b){
return
a.getName().toUpperCase().compareTo(b.getName().toUpperCase());
}
}
Предыдущий вопрос: 12. Расскажите про метод skip()
Следующий вопрос: 14. Расскажите про метод distinct()
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку:напишите мне