先看使用
Map<String,VO> myMap=myList.stream().collect(Collectors.toMap(VO::getID, a -> a));
public static <T, K, U>
Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper) {
return toMap(keyMapper, valueMapper, throwingMerger(), HashMap::new);
}
/**
* List -> Map
* 需要注意的是:
* toMap 如果集合对象有重复的key,会报错Duplicate key ....
* apple1,apple12的id都为1。
* 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
*/
Map<Integer, Apple> appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a,(k1,k2)->k1));
Java集合转换:List到Map的优雅操作及处理重复Key
本文介绍了如何使用Java 8的Stream API将List转换为Map,并强调了在转换过程中可能出现的Duplicate key问题。通过示例展示了如何利用`Collectors.toMap`方法以及提供合并策略来解决重复Key的问题,确保转换的平稳进行。

被折叠的 条评论
为什么被折叠?



