List里將某字段相同的元素合並


工作中遇到將List中某字段相同的元素合並,筆者覺得有必要記錄下來,以備以后參考,好了,直接上代碼

import java.util.ArrayList;
import java.util.List;

class A {
    private String name;//姓名
    private int age;//年齡
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
public class Test4 {
    
    public static void main(String[] args) {
    List<A> oldList = new ArrayList<A>();//需要整合的List
    List<A> newList = new ArrayList<A>();//整合后的List
            A  aA = new A();
            aA.setName("a");
            aA.setAge(10);
            A  aB = new A();
            aB.setName("b");
            aB.setAge(20);
            A  aC = new A();
            aC.setName("c");
            aC.setAge(30);
            A  aD = new A();
            aD.setName("b");
            aD.setAge(40);
    
            oldList.add(aA);
            oldList.add(aB);
            oldList.add(aC);
            oldList.add(aD);
        for (A oldO : oldList) {
            boolean flag = true;//給整合后集合添加子元素標志,true:添加,false:不添加,其年齡相加
                for (A newO : newList) {
                    if (newO.getName(). equals(oldO.getName())) {//判斷姓名是否相同
                        newO.setAge(newO.getAge()+oldO.getAge());//姓名相同時,年齡相加
                        flag = false;
                    }
                }
            if (flag) {
                newList.add(oldO);//給整合后集合添加子元素
            }
        }
        
        for (A a : newList) {//打印結果
            System.out.println(a.getName() + " : "+a.getAge());
        }
    }
}
 

如有問題,請朋友們指出來!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM