O que é mais eficiente: fluxo classificado ou classificação de uma lista?
Suponha que temos alguns itens em uma coleção e queremos classificá-los usando determinado comparador, esperando resultado em uma lista:
Collection<Item> items = ...;
Comparator<Item> itemComparator = ...;
Uma das abordagens é classificar itens em uma lista, algo como:
List<Item> sortedItems = new ArrayList<>(items);
Collections.sort(sortedItems, itemComparator);
Outra abordagem é usar um fluxo classificado:
List<Item> sortedItems = items
.stream()
.sorted(itemComparator)
.collect(Collectors.toList());
Eu me pergunto, qual abordagem é mais eficiente? Existem vantagens em um fluxo classificado (como classificação rápida em vários núcleos)?
Eficiente no sentido da complexidade do tempo de execução / mais rápido.
Eu não confio em mim mesmo para implementar uma perfeitareferência e estudandoSortedOps
realmente não me esclareceu.