Coletando fluxo de volta no mesmo tipo de coleção
Suponha que eu tenha uma coleção do tipo desconhecido. O que eu quero fazer é transmitir, fazer algumas coisas no fluxo e coletá-lo novamente no mesmo tipo de coleção que minha coleção original. Por exemplo:
Collection<? extends Integer> getBigger(Collection<? extends Integer> col, int value) {
return col.stream().filter(v -> v > value).collect(????);
}
A ideia deste exemplo de código incompleto é retornar umList
E secol
é deList
classe (ou qualquer subclasse dela), umSet
E secol
é deSet
classe, etc ... O nome do método e as operações reais no fluxo aqui não são importantes, especifiquei-os apenas para ilustrar minha pergunta. Então é possível?