Сбор потока обратно в тот же тип коллекции
Предположим, у меня есть коллекция неизвестного типа. То, что я хочу сделать, это потоковое воспроизведение, сделать что-то в потоке и собрать его обратно в тот же тип коллекции, что и моя исходная коллекция. Например:
Collection<? extends Integer> getBigger(Collection<? extends Integer> col, int value) {
return col.stream().filter(v -> v > value).collect(????);
}
Идея этого неполного примера кода - вернутьList
еслиcol
имеетList
класс (или любой его подкласс),Set
еслиcol
имеетSet
класс и т. д. Имя метода и фактические операции с потоком здесь не важны, я указал их просто для иллюстрации моего вопроса. Так возможно ли это?