¿Existe una buena manera de agregar un nuevo valor a lo existente Stream
? Todo lo que puedo imaginar es algo como esto:
public <T> Stream<T> addToStream(Stream<T> stream, T elem ) {
List<T> result = stream.collect(Collectors.toList());
result.add(elem);
return result.stream();
}
Pero estoy buscando algo más conciso que pueda usar en expresiones lambda sin verbosidad.
Otra pregunta apareció cuando intenté implementar el principio PECS :
public <T> Stream<? super T> addToStream(Stream<? super T> stream, T elem ) {
List<? super T> result = stream.collect(Collectors.toList()); //error
result.add(elem);
return result.stream();
}
Parece que el comodín no funciona con Stream.collect
y me pregunto por qué. Gracias por adelantado.
List
devuelto seacollect(Collectors.toList())
compatibleadd
, puede usarloCollectors.toCollection
para elegir el tipo de lista que obtiene.