Recopilando flujo nuevamente en el mismo tipo de colección

Supongamos que tengo una colección del tipo desconocido. Lo que quiero hacer es transmitirlo, hacer algunas cosas en la transmisión y volver a recopilarlo en el mismo tipo de colección que mi colección original. Por ejemplo:

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

La idea de este ejemplo de código incompleto es devolver unList Sicol es deList clase (o cualquier subclase de ella), unSet Sicol es deSet clase, etc ... El nombre del método y las operaciones reales en la secuencia aquí no son importantes, las he especificado solo para ilustrar mi pregunta. Entonces, ¿es posible?

Respuestas a la pregunta(3)

Su respuesta a la pregunta