Collectors.toMap()是Java 8中的一个方法,用于将Stream中的元素映射为键值对,并将其收集到一个Map中。它接受两个参数,一个是用于提取键的函数,另一个是用于提取值的函数。
该方法的语法如下:
toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper)
其中,keyMapper是一个函数,用于将Stream中的元素映射为键,valueMapper是一个函数,用于将Stream中的元素映射为值。
使用Collectors.toMap()方法可以方便地将Stream中的元素转换为一个Map对象,其中键和值的类型可以根据实际情况进行指定。
示例代码如下:
List<String> fruits = Arrays.asList("apple", "banana", "orange");
Map<String, Integer> fruitLengthMap = fruits.stream()
.collect(Collectors.toMap(Function.identity(), String::length));
System.out.println(fruitLengthMap);
上述代码将一个包含水果名称的List转换为一个Map,其中键为水果名称,值为水果名称的长度。输出结果为:
{apple=5, banana=6, orange=6}
Collectors.toMap()方法的优势在于它提供了一种简洁而灵活的方式来将Stream中的元素收集到一个Map中。它可以根据需要自定义键和值的提取逻辑,并且可以处理键冲突的情况。
适用场景:
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云