Java List物件合併去重資料
阿新 • • 發佈:2018-11-12
最近有批資料需要處理 資料格式為List<bean> list=new ArrayList<bean>();裡面存在大批相同的資料,現在需要去除相同的資料即相同資料只留下來一條,並且需要將相同資料中一個數值疊加。本來以為處理挺簡單的,後來硬生生搞了好幾個小時,先將實現過程放在下面。
1:private int id;
private int age;
...省略get,set
2:
List<ImportExcelTest> list=new ArrayList<ImportExcelTest>(); ImportExcelTest z = new ImportExcelTest(); z.setId(1); z.setAge(1); ImportExcelTest zzzz = new ImportExcelTest(); zzzz.setId(1); zzzz.setAge(2); ImportExcelTest zz = new ImportExcelTest(); zz.setId(2); zz.setAge(3); ImportExcelTest zzz = new ImportExcelTest(); zzz.setId(2); zzz.setAge(4); list.add(zzz);list.add(zz);list.add(zzzz);list.add(z); List<ImportExcelTest> list1=new ArrayList<ImportExcelTest>(); for (int i = 0; i < list.size(); i++) { if(i==0){ ImportExcelTest z1 = new ImportExcelTest(); z1.setId(list.get(i).getId()); z1.setAge(list.get(i).getAge()); list1.add(z1); i++; } for (int j = 0; j < list1.size(); j++) { if(list.get(i).getId()==list1.get(j).getId()){ int a=list.get(i).getAge()+list1.get(j).getAge(); list1.get(j).setAge(a); }else{ Boolean b=false; for (int j1 = 0; j1 < list1.size(); j1++) { if(list1.get(j1).getId()==list.get(i).getId()){ b=true; } } if(b==false){ ImportExcelTest z1 = new ImportExcelTest(); System.out.println("aaa"); z1.setId(list.get(i).getId()); z1.setAge(list.get(i).getAge()); list.remove(i); list1.add(z1); } } } } System.out.println("list1:"+list1.toString());
控制檯輸出結果為:list1:[ImportExcelTest [id=2, age=7], ImportExcelTest [id=1, age=3]]