Сортировка потока в Java
Метод sorted без аргументов сортирует поток
элементов, которые реализуют Comparable.
Для своего порядка передают компаратор. Сортировка
бывает дорогой на больших данных, поэтому её
ставят осознанно, когда порядок действительно
нужен в результате.
Числа из множества можно вывести по возрастанию:
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<Integer> ids = Set.of(14, 3, 9, 22, 6);
List<Integer> ordered = ids.stream()
.sorted()
.toList();
System.out.println(ordered);
}
}
Строки часто сортируют по длине, а при равной длине по алфавиту:
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> words = List.of("go", "java", "io", "api");
List<String> byLength = words.stream()
.sorted(Comparator.comparingInt(String::length)
.thenComparing(String::compareTo))
.toList();
System.out.println(byLength);
}
}
Дан код:
var nums = List.of(5, 1, 8, 3);
Отсортируйте числа по убыванию и выведите список.
Дан код:
var strings = List.of("banana", "fig", "apple");
Отберите слова длиннее трех символов, отсортируйте по алфавиту и выведите результат.