1. 程式人生 > >java8中List根據某一欄位去重

java8中List根據某一欄位去重

前言

在做一個記錄操作日誌功能,根據型別及稽核使用者名稱稱去查詢操作日誌。稽核使用者名稱稱,在這裡將資料全部查詢出來了,可是我只想要每個人的姓名,而不是出現重複人名,比如:楊平,出現了好多。如何解決此問題呢?在這裡用到了java8強大功能。 去重之前 在這裡插入圖片描述 去重之後 在這裡插入圖片描述

解決

在你的controller中,查詢語句後緊跟以下內容

//去重稽核使用者名稱稱
        objRelationList = objRelationList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TObjRelation::getMajorUsrName))), ArrayList::new));

在這裡插入圖片描述