title: Using Java 8, what is the most concise way of creating a sorted AND grouped list of Strings
body: <p>Using Java 8, what is the most concise way of creating a sorted AND grouped list of Strings? Show the old way and the new way using Lambdas and the Collections and Streams framework.</p>
  
  <p>You can show using 3rd party libraries (popular ones) for the old (or new) way. </p>
  
  <p>However, I suggest that vanilla Java be used because that shows the changes that the language changes in Java 8 bring to the table for the task.</p>
  
  <pre><code>Input: List&lt;String&gt;
  Output: Map&lt;Character&lt;List&lt;String&gt;&gt;
  The key of map is 'A' to 'Z'
  Each list in the map are sorted.
  </code></pre>
  
  <p>It will be sorted and grouped such that ...</p>
  
  <p>Given this list: "Beer", "Apple", "Banana", "Ananas", "Mango", "Blue Berry"</p>
  
  <p>A <code>Map</code> will produced containing the first letter as the key. The values in the map will be a sorted <code>List</code> of all the words beginning with that key (letter):</p>
  
  <ul>
  <li>key: A   values: ["Ananas","Apple"]</li>
  <li>key: B   values: ["Banana","Beer","Blue Berry"]</li>
  <li>key: M   values: ["Mango"]</li>
  </ul>