- после этого он одинаков для всех потоков / тестов
оложим, у нас есть некоторые элементы в коллекции, и мы хотим отсортировать их, используя определенный компаратор, ожидая результата в списке:
Collection<Item> items = ...;
Comparator<Item> itemComparator = ...;
Одним из подходов является сортировка элементов в списке, что-то вроде:
List<Item> sortedItems = new ArrayList<>(items);
Collections.sort(sortedItems, itemComparator);
Другой подход - использование отсортированного потока:
List<Item> sortedItems = items
.stream()
.sorted(itemComparator)
.collect(Collectors.toList());
Интересно, какой подход более эффективен? Есть ли какие-то преимущества у отсортированного потока (например, быстрая сортировка на нескольких ядрах)?
Эффективен в смысле сложности / скорости выполнения.
Я не верю себе, чтобы реализовать идеальныйэталонный тест и изучениеSortedOps
действительно не просветил меня.