title: Convert String array to Map using Java 8 Lambda expressions
body: <p>Is there a better functional way of converting an array of Strings in the form of "key:value" to a <code>Map</code> using the Java 8 lambda syntax?</p>
  
  <pre><code>Arrays.asList("a:1.0", "b:2.0", "c:3.0")
          .stream()
          .map(elem -&gt; elem.split(":")
          .collect(Collectors.toMap(keyMapper?, valueMapper?));
  </code></pre>
  
  <p>The solution I have right now does not seem really functional:</p>
  
  <pre><code>Map&lt;String, Double&gt; kvs = new HashMap&lt;&gt;();
  Arrays.asList("a:1.0", "b:2.0", "c:3.0")
          .stream()
          .map(elem -&gt; elem.split(":"))
          .forEach(elem -&gt; kvs.put(elem[0], Double.parseDouble(elem[1])));
  </code></pre>