Добавление нового значения в существующий поток

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

Ответы на вопрос(1)

Ваш ответ на вопрос