Добавление нового значения в существующий поток
Есть ли хороший способ добавить новое значение к существующим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
и мне интересно почему. Заранее спасибо.