Сбор потока обратно в тот же тип коллекции

Предположим, у меня есть коллекция неизвестного типа. То, что я хочу сделать, это потоковое воспроизведение, сделать что-то в потоке и собрать его обратно в тот же тип коллекции, что и моя исходная коллекция. Например:

Collection<? extends Integer> getBigger(Collection<? extends Integer> col, int value) {
    return col.stream().filter(v -> v > value).collect(????);
} 

Идея этого неполного примера кода - вернутьList еслиcol имеетList класс (или любой его подкласс),Set еслиcol имеетSet класс и т. д. Имя метода и фактические операции с потоком здесь не важны, я указал их просто для иллюстрации моего вопроса. Так возможно ли это?

Ответы на вопрос(3)

Ваш ответ на вопрос