//根據(jù)users的name以及age去重
List<Users> uniq = objects.stream()
.filter(CommonUtils.distinctByKey(s -> StringUtils.join(s.getName(), "-", s.getAge())))
.collect(Collectors.toList());
/**
* 函數(shù)式接口 LIST Object 屬性去重;原理 使用了map.putIfAbsent方法的特性如果key不存在 設(shè)置成功并且返回上一次的值(上次一的為null) 如果key已經(jīng)存在了;設(shè)置失敗并且返回上一次的值(上一次的為true) ;返回true!=null fliter之后會(huì)過濾掉
*
* @param keyExtractor
* @param <T>
*
* @return
*/
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
ConcurrentHashMap<Object, Boolean> map = new ConcurrentHashMap<>(16);
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
java stream list對(duì)象根據(jù)自定義方式去重
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 自定義序列器,使用@JsonSerialize(using = 自定義序列化器類.class)去序列化指定的屬性[...
- 昨天第一次寫簡(jiǎn)書,感覺太生硬,有的東西只有自己懂了,沒有說的和明白,還望大家見諒,今天說一下自定義ionic插件的...
- 介紹 官網(wǎng):https://cn.vuejs.org/v2/guide/custom-directive.html...
- 隨機(jī)改變activity整個(gè)頁面背景顏色 1,要獲取整個(gè)activity的布局,先在布局文件里給定一個(gè)id----...
- 上一篇說到自定義導(dǎo)航欄,若自定義的導(dǎo)航欄中設(shè)置了屬性translucent = NO(作用是去掉顏色渲染,若為YE...