¿Es importante usar Characteristics.UNORDERED en Collectors cuando sea posible?

Como uso mucho las transmisiones, algunas de ellas con una gran cantidad de datos, pensé que sería una buena idea preasignar mis recopiladores basados en colecciones con un tamaño aproximado para evitar una costosa reasignación a medida que la colección crece. Así que se me ocurrió esto y otros similares para otros tipos de colecciones:

public static <T> Collector<T, ?, Set<T>> toSetSized(int initialCapacity) {
    return Collectors.toCollection(()-> new HashSet<>(initialCapacity));
}

Usado así

Set<Foo> fooSet = myFooStream.collect(toSetSized(100000));

Mi preocupación es que la implementación deCollectors.toSet()&nbsp;establece unCharacteristics&nbsp;enumeración queCollectors.toCollection()&nbsp;no:Characteristics.UNORDERED. No hay una variación conveniente deCollectors.toCollection()&nbsp;para establecer las características deseadas más allá del valor predeterminado, y no puedo copiar la implementación deCollectors.toSet()&nbsp;por problemas de visibilidad. Entonces, para configurar elUNORDERED&nbsp;característica, me veo obligado a hacer algo como esto:

static<T> Collector<T,?,Set<T>> toSetSized(int initialCapacity){
    return Collector.of(
            () -> new HashSet<>(initialCapacity),
            Set::add,
            (c1, c2) -> {
                c1.addAll(c2);
                return c1;
            },
            new Collector.Characteristics[]{IDENTITY_FINISH, UNORDERED});
}

Aquí están mis preguntas: 1. ¿Es esta mi única opción para crear un recopilador desordenado para algo tan simple como una costumbretoSet()&nbsp;2. Si quiero que esto funcione idealmente, ¿es necesario aplicar la característica no ordenada? he leídouna pregunta en este foro&nbsp;donde aprendí que la característica desordenada ya no se propaga hacia atrás en la Corriente. ¿Sigue sirviendo un propósito?