¿Qué es más eficiente: una secuencia ordenada o una lista?

Supongamos que tenemos algunos elementos en una colección y queremos clasificarlos usando cierto comparador, esperando el resultado en una lista:

Collection<Item> items = ...;
Comparator<Item> itemComparator = ...;

Uno de los enfoques es ordenar los elementos en una lista, algo así como:

List<Item> sortedItems = new ArrayList<>(items);
Collections.sort(sortedItems, itemComparator);

Otro enfoque está utilizando una secuencia ordenada:

List<Item> sortedItems = items
    .stream()
    .sorted(itemComparator)
    .collect(Collectors.toList());

Me pregunto, ¿qué enfoque es más eficiente? ¿Hay alguna ventaja de una secuencia ordenada (como la clasificación rápida en múltiples núcleos)?

Eficiente en un sentido de complejidad de tiempo de ejecución / más rápido.

No confío en mí mismo para implementar un perfectopunto de referencia Y estudiandoSortedOps Realmente no me iluminó.

Respuestas a la pregunta(3)

Su respuesta a la pregunta