Java List对象合并去重数据
程序员文章站
2024-03-01 16:31:10
...
最近有批数据需要处理 数据格式为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]]
下一篇: js根据多个查询条件筛选数据