ale*_*lov 3 java hashmap java-8 java-stream
我有一个流,我想明确地将它收集到HashMap中.现在,我正在做类似的事情
List<Item> listToTransform = //initialized and populated
HashMap<K, V> myHashMap = new HashMap<>();
listToTransform.stream().map(/* do my transformation here */)
.forEach(i -> myHashMap.put(i.getKey(), i.getValue()));
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以使用收集器来显式获取HashMap.
该Collectors.toMap方法的一个重载将允许您选择您选择的地图实现.
不幸的是,这个重载的一个缺点是它还需要一个方法来合并两个值,当它们具有相同的键时(尽管我经常引用一种总是在这种情况下抛出的方法).
HashMap<K, V> myHashMap = listToTransform.stream().map(/* do my transformation here */)
.collect(Item::getKey, Item::getValue, this::throwIllegalArgumentException, HashMap::new);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |