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流根據屬性去重
- 陣列物件根據物件中指定的屬性去重?你知道多少陣列物件
- jQuery根據多個屬性匹配元素jQuery
- 歡迎使用CSDlambda表示式不同物件根據物件某個屬性去重N-markdown編輯器物件
- Java : List中 根據map的某個key去重Java
- 【資料】Arraylist中根據指定元素屬性排序排序
- vxe-table 校驗,根據行屬性校驗
- js根據input標籤的type屬性篩選元素JS
- 根據name屬性值篩選checkbox核取方塊
- 根據身高計算體重
- Linux命令根據某一列對檔案內容去重Linux
- 09_ClickHouse,ReplacingMergeTree,案例,根據排序鍵去重,使用版本引數的去重(學習筆記)排序筆記
- SpringBoot中根據屬性動態註冊Spring BeanSpring BootBean
- jackson根據屬性名動態序列化物件欄位物件
- swift4.0 物件資料來源根據屬性分組,時間排序Swift物件排序
- iOS 讓Label根據其上的文字屬性自適應顯示iOS
- JDK8新特性之stream()JDK
- JDK8中Stream使用解析JDK
- 根據rowid刪除重複資料
- JDK8新特性(4)—— stream 流JDK
- JDK8新特性之Stream流JDK
- List集合物件去重及按屬性去重的8種方法-java基礎總結系列第六篇物件Java
- 根據給定的字串,修改一個多層巢狀物件對應的屬性值字串巢狀物件
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- ArcGIS Server ADF開發:根據圖層不同屬性用不同圖示定位興趣點Server
- 根據提示操作
- sql根據多個欄位查詢重複記錄SQL
- JPA(hibernate)一對多根據多的一方某屬性進行過濾查詢
- jdk8之stream求和,保留兩位小數JDK
- HTML id屬性值不能重複HTML
- MySQL8 根據某屬性查詢欄位排名由自定義變數到rank()的變動MySql變數
- Map根據Value排序排序
- 根據Interceptor 分析 OkHttp(一)HTTP
- 根據ip獲取城市
- java 根據日期取得星期Java
- js根據時間排序JS排序
- List根據時間排序排序
- 根據欄位查表名