Важно ли использовать Characteristics.UNORDERED в коллекционерах, когда это возможно?

Поскольку я часто использую потоки, некоторые из которых имеют дело с большим объемом данных, я подумал, что было бы неплохо предварительно выделить коллекторы, основанные на коллекции, приблизительным размером, чтобы предотвратить дорогостоящее перераспределение по мере роста коллекции. Итак, я придумал это и похожие для других типов коллекций:

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

Используется как это

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

Я обеспокоен тем, что реализацияCollectors.toSet()&nbsp;устанавливаетCharacteristics&nbsp;перечислите чтоCollectors.toCollection()&nbsp;не:Characteristics.UNORDERED, Там нет удобного вариантаCollectors.toCollection()&nbsp;установить желаемые характеристики за пределы по умолчанию, и я не могу скопировать реализациюCollectors.toSet()&nbsp;из-за проблем видимости. Итак, чтобы установитьUNORDERED&nbsp;характеристика я вынужден сделать что-то вроде этого:

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});
}

Итак, вот мои вопросы: 1. Это мой единственный вариант для создания неупорядоченного коллектора для чего-то простого, как обычайtoSet()&nbsp;2. Если я хочу, чтобы это работало идеально, нужно ли применять неупорядоченную характеристику? я прочелвопрос на этом форуме&nbsp;где я узнал, что неупорядоченная характеристика больше не распространяется обратно в поток. Это все еще служит цели?