title: copying list object to another list object with modified content using Streams
body: <p>I want to use streams to Uppercase Book name in my List</p>
  
  <pre><code>List&lt;Book&gt; list = new ArrayList&lt;Book&gt;();
  list.add(new Book("1", "Java", 10));
  list.add(new Book("2", "Spring", 20));
  list.add(new Book("3", "Webservices", 30));
  </code></pre>
  
  <p>I want to convert case of my book name. 
  My current approach is giving me <strong>List&lt;String&gt;</strong> instead of <strong>List&lt;Book&gt;</strong>
  --------- [JAVA, SPRING, WEBSERVICES]</p>
  
  <pre><code>    package java8;
  
      import java.util.ArrayList;
      import java.util.Arrays;
      import java.util.List;
      import java.util.stream.Collectors;
      import java.util.stream.IntStream;
      import java.util.stream.Stream;;
  
      public class StreamTest {
  
          public static void main(String s[]) {
              List&lt;Book&gt; list = new ArrayList&lt;Book&gt;();
              list.add(new Book("1", "Java", 10));
              list.add(new Book("2", "Spring", 20));
              list.add(new Book("3", "Webservices", 30));
              List&lt;String&gt; updateList = list.stream().map(str2 -&gt; str2.getName().toUpperCase()).collect(Collectors.toList());            
  System.out.println("--------- "+updateList);
          }
      }
  </code></pre>