最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

List集合多個復雜字段判斷去重的案例

 更新時間:2018年12月08日 10:16:22   作者:執(zhí)筆記憶的空白  
今天小編就為大家分享一篇關(guān)于List集合多個復雜字段判斷去重的案例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

List去重復,我們首先想到的可能是 利用List轉(zhuǎn)Set集合,因為Set集合不允許重復。所以達到這個目的。 如果集合里面是簡單對象,例如Integer、String等等,這種可以使用這樣的方式去重復。但是如果是復雜對象,即我們自己封裝的對象。用List轉(zhuǎn)Set 卻達不到去重復的目的。 所以,回歸根本。 判斷Object對象是否一樣,我們用的是其equals方法。 所以我們只需要重寫equals方法,就可以達到判斷對象是否重復的目的。

話不多說,上代碼:

package com.test;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
public class TestCollection {
 //去重復之前集合
 private static List<User> list = Arrays.asList(
  new User("張三", BigDecimal.valueOf(35.6), 18),
  new User("李四", BigDecimal.valueOf(85), 30),
  new User("趙六", BigDecimal.valueOf(66.55), 25),
  new User("趙六", BigDecimal.valueOf(66.55), 25),
  new User("張三", BigDecimal.valueOf(35.6), 18));
 public static void main(String[] args) {
 //排除重復
 getNoRepeatList(list);
 
 }
 /**
 * 去除List內(nèi)復雜字段重復對象
 * @param oldList
 * @return
 */
 private static List<User> getNoRepeatList(List<User> oldList){
 List<User> list = new ArrayList<>();
 if(CollectionUtils.isNotEmpty(oldList)){
  for (User user : oldList) {
  //list去重復,內(nèi)部重寫equals
  if(!list.contains(user)){
   list.add(user);
  }
  }
 }
 //輸出新集合
 System.out.println("去除重復后新集合:");
 if(CollectionUtils.isNotEmpty(list)){
  for (User user : list) {
  System.out.println(user.toString());
  }
 }
 return list; 
 } 
 static class User{
 private String userName; //姓名
 private BigDecimal score;//分數(shù)
 private Integer age;
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public BigDecimal getScore() {
  return score;
 }
 public void setScore(BigDecimal score) {
  this.score = score;
 }
 public Integer getAge() {
  return age;
 }
 public void setAge(Integer age) {
  this.age = age;
 }
 public User(String userName, BigDecimal score, Integer age) {
  super();
  this.userName = userName;
  this.score = score;
  this.age = age;
 }
 public User() {
  // TODO Auto-generated constructor stub
 }
 @Override
 public String toString() {
  // TODO Auto-generated method stub
  return "姓名:"+ this.userName + ",年齡:" + this.age + ",分數(shù):" + this.score;
 }
 /**
  * 重寫equals,用于比較對象屬性是否包含
  */
 public boolean equals(Object obj) { 
     if (obj == null) { 
       return false; 
     } 
     if (this == obj) { 
       return true; 
     } 
     User user = (User) obj; 
     //多重邏輯處理,去除年齡、姓名相同的記錄
     if (this.getAge() .compareTo(user.getAge())==0
      && this.getUserName().equals(user.getUserName())
      && this.getScore().compareTo(user.getScore())==0) { 
       return true; 
     } 
     return false; 
   } 
 }
}

執(zhí)行結(jié)果:

去除重復后新集合:
姓名:張三,年齡:18,分數(shù):35.6
姓名:李四,年齡:30,分數(shù):85
姓名:趙六,年齡:25,分數(shù):66.55

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 淺談Spring bean 生命周期驗證

    淺談Spring bean 生命周期驗證

    本篇文章主要介紹了淺談Spring bean 生命周期驗證,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java實現(xiàn)圖片旋轉(zhuǎn)、指定圖像大小和水平翻轉(zhuǎn)

    Java實現(xiàn)圖片旋轉(zhuǎn)、指定圖像大小和水平翻轉(zhuǎn)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)圖像旋轉(zhuǎn),指定圖像大小,水平翻轉(zhuǎn)圖像,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 不調(diào)用方法實現(xiàn)hutool導出excel圖片示例詳解

    不調(diào)用方法實現(xiàn)hutool導出excel圖片示例詳解

    這篇文章主要為大家介紹了不調(diào)用方法實現(xiàn)hutool導出excel圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • SpringBoot如何指定某些類優(yōu)先啟動

    SpringBoot如何指定某些類優(yōu)先啟動

    這篇文章主要介紹了SpringBoot如何指定某些類優(yōu)先啟動,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • log4j使用教程詳解(怎么使用log4j2)

    log4j使用教程詳解(怎么使用log4j2)

    Log4j 2的好處就不和大家說了,如果你搜了2,說明你對他已經(jīng)有一定的了解,并且想用它,所以這里直接就上手了
    2013-12-12
  • Java之SpringBoot定時任務(wù)案例講解

    Java之SpringBoot定時任務(wù)案例講解

    這篇文章主要介紹了Java之SpringBoot定時任務(wù)案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring MVC獲取HTTP請求頭的兩種方式小結(jié)

    Spring MVC獲取HTTP請求頭的兩種方式小結(jié)

    這篇文章主要介紹了Spring MVC獲取HTTP請求頭的兩種方式小結(jié),幫助大家更好的理解和使用Spring MVC,感興趣的朋友可以了解下
    2021-01-01
  • Java 之類型轉(zhuǎn)換與多態(tài)詳情

    Java 之類型轉(zhuǎn)換與多態(tài)詳情

    Java使用類創(chuàng)造新的類型(type),并使用繼承來便利我們創(chuàng)建類。再深一層講類型,并是多態(tài)(polymorphism)的概念。本文將給大家介紹Java 的類型轉(zhuǎn)換與多態(tài),需要的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • springboot項目事務(wù)標簽驗證

    springboot項目事務(wù)標簽驗證

    本文主要介紹了springboot項目事務(wù)標簽驗證,文中通過示例代碼介紹的非常詳細,詳細的介紹了不加事務(wù)標簽和加事物標簽的使用,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • Java循環(huán)創(chuàng)建對象內(nèi)存溢出的解決方法

    Java循環(huán)創(chuàng)建對象內(nèi)存溢出的解決方法

    在Java中,如果在循環(huán)中不當?shù)貏?chuàng)建大量對象而不及時釋放內(nèi)存,很容易導致內(nèi)存溢出(OutOfMemoryError),所以本文給大家介紹了Java循環(huán)創(chuàng)建對象內(nèi)存溢出的解決方法,需要的朋友可以參考下
    2025-01-01

最新評論

仁化县| 大关县| 京山县| 和田县| 阿拉尔市| 南澳县| 农安县| 邵东县| 瑞安市| 甘谷县| 杭锦旗| 玉山县| 济宁市| 伊通| 大渡口区| 新野县| 西藏| 平邑县| 莫力| 西丰县| 勃利县| 临邑县| 盘锦市| 台北县| 苗栗市| 海原县| 温泉县| 得荣县| 灵山县| 荆门市| 宁城县| 平凉市| 弥渡县| 灵山县| 清水河县| 孟村| 安陆市| 镇原县| 原阳县| 天峻县| 武城县|