什么是 Collectors.toMap

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

Collectors.toMap 的用法

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

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

这段代码将 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 时,使用该参数可以让你指定如何处理这种情况。