Есть ли хороший способ добавить новое значение в существующий Stream
? Все, что я могу себе представить, это примерно так:
public <T> Stream<T> addToStream(Stream<T> stream, T elem ) {
List<T> result = stream.collect(Collectors.toList());
result.add(elem);
return result.stream();
}
Но я ищу что-то более сжатое, что я могу использовать в выражении лямбда без многословия.
Другой вопрос появился, когда я попытался реализовать принцип 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();
}
Кажется, что подстановочный символ не работает с Stream.collect
, и мне интересно, почему. Спасибо заранее.