带有供应商参数的 Collectors.toMap

tis*_*sek 2 java lambda

我无法理解,也找不到带有 Supplied 参数的 Collectors.toMap 方法的合适示例;这个

我完全理解其他方法,具有创建键的函数、值、处理重复项的二进制事物,我只是不明白最后一种方法有一个额外的供应商参数。

Har*_*ezz 5

下面是一个例子:

Arrays.asList(1, 2, 3).stream()
      .collect(Collectors.toMap(i -> i, i -> i, (i, j) -> i, HashMap::new));
Run Code Online (Sandbox Code Playgroud)

在这个例子Supplier<M> mapSupplierHashMap::new,一个工厂能够创建一个空的Map.