title: Adding new value to existing Stream
body: <p>Is there is a good way to add a new value to existing <code>Stream</code>? All I can imagine is something like this:</p>
  
  <pre><code>public &lt;T&gt; Stream&lt;T&gt; addToStream(Stream&lt;T&gt; stream, T elem ) {
      List&lt;T&gt; result = stream.collect(Collectors.toList());
      result.add(elem);
      return result.stream();
  }
  </code></pre>
  
  <p>But I'm looking for something more concise that I can use in lambda expression without verbosity.</p>
  
  <p>Another question appeared when I tried to implement <em>PECS</em> principle:</p>
  
  <pre><code>public &lt;T&gt; Stream&lt;? super T&gt; addToStream(Stream&lt;? super T&gt; stream, T elem ) {
      List&lt;? super T&gt; result = stream.collect(Collectors.toList()); //error
      result.add(elem);
      return result.stream();
  }
  </code></pre>
  
  <p>Seems like wildcard doesn't work with <code>Stream.collect</code> and I'm wondering why. Thanks in advance.</p>