jdk8 stream 根據屬性去重
private void book(List<Item> books){
List<Integer> bookIds = books.stream().filter(distinctByKey(m ->m.getBookId())).map(m -> m.getBookId()).collect(Collectors.toList());
}
//根據屬性去重 distinct
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
相關文章
- Stream流根據屬性去重
- 陣列物件根據物件中指定的屬性去重?你知道多少陣列物件
- 根據屬性字串獲取屬性值字串
- 歡迎使用CSDlambda表示式不同物件根據物件某個屬性去重N-markdown編輯器物件
- Java : List中 根據map的某個key去重Java
- vxe-table 校驗,根據行屬性校驗
- SpringBoot中根據屬性動態註冊Spring BeanSpring BootBean
- Linux命令根據某一列對檔案內容去重Linux
- jackson根據屬性名動態序列化物件欄位物件
- 09_ClickHouse,ReplacingMergeTree,案例,根據排序鍵去重,使用版本引數的去重(學習筆記)排序筆記
- 根據手機號識性別
- swift4.0 物件資料來源根據屬性分組,時間排序Swift物件排序
- JDK8新特性之stream()JDK
- JDK8中Stream使用解析JDK
- sqlserver根據條件去除重複資料SQLServer
- JDK8新特性(4)—— stream 流JDK
- JDK8新特性之Stream流JDK
- List集合物件去重及按屬性去重的8種方法-java基礎總結系列第六篇物件Java
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- 根據給定的字串,修改一個多層巢狀物件對應的屬性值字串巢狀物件
- 根據提示操作
- sql根據多個欄位查詢重複記錄SQL
- MySQL8 根據某屬性查詢欄位排名由自定義變數到rank()的變動MySql變數
- HTML id屬性值不能重複HTML
- jdk8之stream求和,保留兩位小數JDK
- Python程式碼閱讀(第38篇):根據謂詞函式和屬性字串構造判斷函式Python函式字串
- 根據欄位查表名
- List根據時間排序排序
- js根據時間排序JS排序
- 根據年月份分表
- SAP RETAIL 如何根據分配表查到根據它建立的採購訂單?AI
- JavaScript字串物件 之 根據字元返回位置、根據位置返回字元、字串操作方法JavaScript字串物件字元
- 【重學Java】Stream流Java
- 「Excel技巧」Excel中根據某列的值去彙總另外一列的值Excel
- 切片去重(string,int型別去重)型別
- linux 下根據埠kill 程式Linux
- JavaScript 根據type篩選inputJavaScript
- 根據IP定位地理位置