List《實體類》根據多個欄位去重

2022-06-30 20:12:14 字數 1128 閱讀 3474

現在有乙個實體類person,屬性有三個,分別是name,age,address,根據這三個屬性將list中三個欄位都相同的資料進行去重。

//建立list,新增資料

listlist = new arraylist<>();

list.add(new person("tom", 15, "america"));

list.add(new person("tam", 16, "china"));

list.add(new person("tom", 15, "japan"));

list.add(new person("tcm", 18, "russia"));

list.add(new person("tom", 15, "america"));

list.add(new person("tdm", 16, "america"));

list.add(new person("tem", 17, "america"));

// 根據三個欄位去重

listlst = list.stream().collect(collectors.collectingandthen(collectors.tocollection(

() -> new treeset<>(comparator.comparing(o -> o.getname() + "#" + o.getage() + "#" + o.getaddress()))),

arraylist::new));

// 遍歷輸出一下

lst.foreach(person -> system.out.println(person.tostring()));

//結果:

person [name=tam, age=16, address=china]

person [name=tcm, age=18, address=russia]

person [name=tdm, age=16, address=america]

person [name=tem, age=17, address=america]

person [name=tom, age=15, address=america]

person [name=tom, age=15, address=japan]

mysql根據多個欄位去重

現在在搞資料處理,裡面有個資料是根據兩個欄位來區別是不是一樣的,那如果在設計的時候沒有將那兩個字段設計成唯一主鍵,或者唯一索引,後續就要進行去重,上網查了好久,發現都沒有啥好的解決方法,後來想了下,將那兩個主鍵連線一下,然後group分組不就行了?雖然效能很弱雞,但是這個sql我又只是用一次而已。s...

List根據某個字段(屬性)去重

更新 2021 06 01 1 void main 216 double d datetime.now.subtract dt totalmilliseconds 1718 方法一 19 datetime dt1 datetime.now 20 dictionary result1 new dict...

Oracle如何實現多個欄位去重

我們通常使用distinct關鍵字來去除重覆記錄,還有沒有其他辦法呢?通過查詢資料,確認group by也可以,利用rowid也可以實現功能。其中,group by是用來分組統計的,能用distinct的地方就不要用group by。下面我們看一下幾種方法具體如何實現,至於選用哪一種,主要還是看需求...