概述
背景:有一个针对javaBean的List,javaBean里面有6个元素,现在要将Lsit里面前面3个属性相同的数据合并成一条数据,后面3个属性相加,得到一个新的List。
package com.cn;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
List<Test> list1 = new ArrayList<Test>();
Test a = new Test();
a.setA("1");
a.setB("1");
a.setC("1");
a.setD(new BigDecimal(1));
a.setE(new BigDecimal(1));
a.setF(new BigDecimal(1));
list1.add(a);
Test a1 = new Test();
a1.setA("1");
a1.setB("1");
a1.setC("1");
a1.setD(new BigDecimal(1));
a1.setE(new BigDecimal(1));
a1.setF(new BigDecimal(1));
list1.add(a1);
Test a2 = new Test();
a2.setA("2");
a2.setB("2");
a2.setC("2");
a2.setD(new BigDecimal(2));
a2.setE(new BigDecimal(2));
a2.setF(new BigDecimal(2));
list1.add(a2);
Test a3 = new Test();
a3.setA("2");
a3.setB("2");
a3.setC("2");
a3.setD(new BigDecimal(3));
a3.setE(new BigDecimal(3));
a3.setF(new BigDecimal(3));
list1.add(a3);
Test a4 = new Test();
a4.setA("2");
a4.setB("2");
a4.setC("2");
a4.setD(new BigDecimal(4));
a4.setE(new BigDecimal(4));
a4.setF(new BigDecimal(4));
list1.add(a);
Test a5 = new Test();
a5.setA("3");
a5.setB("3");
a5.setC("3");
a5.setD(new BigDecimal(5));
a5.setE(new BigDecimal(5));
a5.setF(new BigDecimal(5));
list1.add(a5);
List<Test> list2 = new ArrayList<Test>();
Map<String,Test> groupMap = new HashMap<String,Test>();
for(Test list : list1)
{
String key = list.getA() + list.getB() + list.getC();
Test test = groupMap.get(key);
if(null == test)
{
groupMap.put(key,list);
}
else
{
test.setD(test.getD().add(list.getD()));
test.setE(test.getE().add(list.getE()));
test.setF(test.getF().add(list.getF()));
}
}
Collection<Test> collection = groupMap.values();
if(null != collection)
{
list2.addAll(collection);
}
System.out.println("合并后的list列表="+list2);
}
private String A;
private String B;
private String C;
private BigDecimal D;
private BigDecimal E;
private BigDecimal F;
.......省略 abcdef 的get、set方法...
}
最后
以上就是丰富哈密瓜为你收集整理的Lsit部分相同项合并,其余相加的全部内容,希望文章能够帮你解决Lsit部分相同项合并,其余相加所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复