我无法理解,也没有找到合适的示例Collectors.toMap方法与Supplied参数; this one。Collectors.toMap与供应商参数
我完全理解其他人,用函数来创建键,值,二进制的东西来处理重复,我只是不明白最后一个方法,有一个额外的供应商参数。
我无法理解,也没有找到合适的示例Collectors.toMap方法与Supplied参数; this one。Collectors.toMap与供应商参数
我完全理解其他人,用函数来创建键,值,二进制的东西来处理重复,我只是不明白最后一个方法,有一个额外的供应商参数。
你提到的方法让你来决定两个:
与此方法相反,在其他2个重载版本中,映射的实现将由库选择并创建一个新的实例。
有道理。谢谢。最后一件事。这意味着什么,如果没有供应商的论点,实施将被“图书馆”选择? – tisek
下面是一个例子:
Arrays.asList(1, 2, 3).stream()
.collect(Collectors.toMap(i -> i, i -> i, (i, j) -> i, HashMap::new));
在这个例子中是Supplier<M> mapSupplier
HashMap::new
,能够创建一个空Map
的工厂。
额外的供应商可以让您确定要返回的Map的实现(例如,您可以传递HashMap :: new或LinkedHashMap :: new)。 – Eran
作为文档显示它与'Collectors.toCollection(TreeSet :: new)'集合' – AxelH
第二个回答[此问题](http://stackoverflow.com/questions/33724733/confused-by-java8-收藏家tomap)有一个很好的解释示例 –