如何通过Stream API创建key来自long类型列表、value固定为0的Map<Long,Long>
Java Stream 列表转固定值Map实现方案
你可以直接使用Collectors.toMap的三参数重载实现需求,代码如下:
import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; // 核心转换逻辑 Map<Long, Long> map = list1.stream() .collect(Collectors.toMap( Function.identity(), // Map的键取列表元素本身 key -> 0L, // 所有键对应的value固定为0 (oldVal, newVal) -> oldVal // 重复键时保留已有值,实现自动去重 ));
代码说明
- 三参数的
toMap重载自带重复键处理逻辑,不会因为列表中存在重复元素抛出冲突异常 - 最终生成的Map默认是HashMap实现,天然不保证元素顺序,符合要求
- 针对示例输入
list1 = [1, 2, 3, 1, 3],执行后得到的Map结果为{1:0, 2:0, 3:0},完全匹配预期
内容的提问来源于stack exchange,提问作者user13034249
相关产品推荐
相关产品推荐

