我無法理解,也沒有找到合適的示例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)有一個很好的解釋示例 –