Есть ли лучший функциональный способ преобразования массива строк в форме "ключ: значение" в Map
с использованием синтаксиса лямбда Java 8?
Arrays.asList("a:1.0", "b:2.0", "c:3.0")
.stream()
.map(elem -> elem.split(":")
.collect(Collectors.toMap(keyMapper?, valueMapper?));
Решение, которое я имею прямо сейчас, не выглядит действительно функциональным:
Map<String, Double> kvs = new HashMap<>();
Arrays.asList("a:1.0", "b:2.0", "c:3.0")
.stream()
.map(elem -> elem.split(":"))
.forEach(elem -> kvs.put(elem[0], Double.parseDouble(elem[1])));