什么是Collectors.toMap

Collectors.toMap是Java 8中的一个新特性,它可以将一个集合对象转换为一个Map对象。它可以接受两个参数,第一个参数是用于生成Map中的key的函数,第二个参数是用于生成Map中的value的函数。Collectors.toMap可以让你在编写代码时更加高效。

Collectors.toMap的用法

Collectors.toMap的用法很简单,只需要提供两个参数,第一个参数是用于生成Map中的key的函数,第二个参数是用于生成Map中的value的函数。下面是一个简单的例子:


List<String> list = Arrays.asList("a", "b", "c");
Map<String, Integer> map = list.stream()
    .collect(Collectors.toMap(s -> s, s -> s.length()));

这段代码将list中的每个元素转换成key-value对,其中key是list中的元素,value是list中元素的长度。在这个例子中,map中的key-value对将是:a-1, b-1, c-1。

Collectors.toMap的优点

Collectors.toMap的优点很明显,它可以使你的代码更加简洁,更加高效。使用Collectors.toMap可以让你更加轻松地将一个集合转换成一个Map对象,而不需要使用更复杂的循环语句。

此外,Collectors.toMap还可以接受一个可选的第三个参数,该参数用于定义Map的合并策略,当Map中出现重复的key时,使用该参数可以让你指定如何处理这种情况。