C'è un buon modo per aggiungere un nuovo valore a esistente Stream
? Tutto quello che posso immaginare è qualcosa di simile:Aggiunta di un nuovo valore a Stream esistente
public <T> Stream<T> addToStream(Stream<T> stream, T elem) {
List<T> result = stream.collect(Collectors.toList());
result.add(elem);
return result.stream();
}
Ma io sto cercando qualcosa di più concisa che posso utilizzare in un'espressione lambda, senza verbosità.
Un'altra domanda è apparso quando ho cercato di implementare PECS principio:
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();
}
Sembra come jolly non funziona con Stream.collect
e mi chiedo perché. Grazie in anticipo.
Non c'è alcuna garanzia che la 'Lista' restituita da' collect (Collectors.toList()) 'supporti' add', puoi usare 'Collectors.toCollection' invece di scegliere il tipo di lista che ottieni. – Alex