java stream初始化map
时间: 2025-01-25 07:04:03 浏览: 20
使用Java Stream API初始化Map
在Java中,可以利用Stream API的强大功能来创建并填充Map
对象。下面展示了一种通过流操作实现这一目标的方法:
import java.util.*;
import java.util.stream.Collectors;
public class MapInitializationExample {
public static void main(String args[]) {
List<String> keys = Arrays.asList("one", "two", "three");
List<Integer> values = Arrays.asList(1, 2, 3);
// 将两个列表组合成一个映射
Map<String, Integer> map = IntStream.range(0, Math.min(keys.size(), values.size()))
.boxed()
.collect(Collectors.toMap(i -> keys.get(i), i -> values.get(i)));
System.out.println(map);
}
}
上述代码片段展示了如何使用IntStream.range()
方法生成索引范围,并将其转换为盒子类型的流(boxed()
)以便于后续处理。之后调用了Collectors.toMap()
收集器,它接收键和值的选择逻辑作为参数,从而构建出所需的Map
实例。
对于更复杂的情况,比如当存在重复键时,还可以指定第三个参数用于解决冲突;如果希望自定义最终返回的Map
类型,则可提供第四个参数——即工厂函数来创建特定类型的集合[^1]。
相关推荐


















