jdk8中使用toMap主鍵衝突

2021-10-06 14:18:43 字數 831 閱讀 3158

開始行動,你已經成功一半了,獻給正在奮鬥的我們

今天線上產品經理新增了乙個需求,其中我做了乙個操作,將乙個集合使用jdk8分解成乙個map,結果丟擲了異常,是因為map的鍵衝突了,那我我們就想了,如果我們想保留其中乙個而不是直接丟擲異常該怎麼做呢?原**如下:

map

collect1 = attendancerecordlist.

stream()

.collect

(collectors.

tomap

(attendancerecord:

:getpersonid, attendancerecord:

:getrecordtime)

;

網上查詢了一下解決方案,其實很簡單,collectors.tomap方法提供了第三個引數,我們可以指定在重複的時候使用新的還是舊的,就是是否需要將舊的覆蓋,**如下:

jdk8中forEach使用問題

實話說,jdk8出來好久了,公司一直用的還是jdk7,沒有公升級,最近終於公升級到jdk8了,所以來自己改改 使用jdk8中的新特性,最簡單的foreach先來試試 測試 如下 public static void testjdk8foreach 2 jdk8 foreach aslist.fore...

JDK8中Optional的方法使用

1.optional.of 或者optional.ofnullable 建立optional物件,差別在於of不允許引數是null,而ofnullable則無限制。test public void testoptional 2.ispresent 判斷值是否存在 ispresent判斷值是否存在 s...

JDK8中的鎖優化

參考 longadder 類似automiclong,但是提供了 熱點分離 過程如下 如果併發不激烈,則與automiclong 一樣,cas賦值。如果出現併發操作,則使用陣列,陣列的各元素之和為真實value,讓操作分散在陣列各個元素上,把併發操作壓力分散,一遇到併發就擴容陣列,最後達到高效率。一...