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.

questionAnswers(3)

yourAnswerToTheQuestion