簡體   English   中英

收集到 HashMap 到 Java 中的 LinkedHashMap 8

[英]Collecting to HashMap to a LinkedHashMap in Java 8

我正在使用 java 8 個流將 HashMap 轉換為 LinkedHashMap。 我有以下代碼:

    final LinkedHashMap<String, Employee> collect = map.entrySet().stream()
            .sorted(Comparator.comparing(o -> o.getValue().getName()))
            .collect(Collectors.toMap(e -> e.getKey(), v -> v.getValue(), (o, o2) -> o, LinkedHashMap::new));

一切都很清楚,但是 toMap 方法的最后一個參數讓我很困惑。

(o, o2) -> o, LinkedHashMap::new)

據我了解,這是一個 binaryOperator,但我無法理解它是如何工作的以及 'o' 對 o 的含義o, LinkedHashMap::new

誰能幫助我理解它或任何更好的方法來實現這一目標?

(o, o2) -> o是第三個參數

正如文件所說

@param mergeFunction 合並 function,用於解決 * 與同一鍵關聯的值之間的沖突,如提供給 {@link Map#merge(Object, Object, BiFunction)}

這意味着如果你有沖突,你只保留o 您不關心其他沖突的 object o2 所以oo2是存在於同一個鍵的 2 個沖突值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM