title: how to achieve immutability in Java 8 stream api
body: <p>Consider the following code. I read it is important to achieve immutability in the code while dealing with Stream API. How can we get a list of all the item in lower case with immutability?   </p>
  
  <pre><code>    List&lt;String&gt; stockList = Arrays.asList("GOOG", "AAPL", "MSFT", "INTC");
      List&lt;String&gt; stockList2 = new ArrayList&lt;&gt;();
      stockList.parallelStream()
              .filter(e -&gt; !e.contains("M"))
              .map(String::toLowerCase)
              .map(e -&gt; stockList2.add(e))
              .collect(toList());
     stockList2.forEach(System.out::println);
  </code></pre>