List里有多对象,每对象有货名String和货量Double的字段,如货名相同货量就相加,结果在新CargoList里只有一个对象了四条数据IPE:1400,BNZ:1100,VAM:1000,CSS:1000
List相同字段合并问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- qq_39423562 2018-03-07 07:31关注
class Student{
private String store;
private int money;
private Date date;
private Integer status=0;public String getStore() { return store; } public void setStore(String store) { this.store = store; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Student() { super(); } /*public Student(String store, int money, Date date,Integer status) { super(); this.store = store; this.money = money; this.date = date; this.status=status; }*/ @Override public String toString() { return "\nStudent [store=" + store + ", money=" + money + ", date=" + DateUtil.formatDate(date, "yyyy-MM-dd") + ", status=" + status + "]\n"; } public Student(String store, int money, Date date) { super(); this.store = store; this.money = money; this.date = date; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } } @Test
ublic void testList() throws Exception{
String format="yyyy-MM-dd";
Student student1=new Student("bb",12,DateUtil.formatString("2017-06-01", format));
Student student2=new Student("aa",13 ,DateUtil.formatString("2017-06-01", format));
Student student3=new Student("bb",12,DateUtil.formatString("2017-06-01", format));
Student student4=new Student("dd",14,DateUtil.formatString("2017-06-02", format));
Student student5=new Student("cc",15,DateUtil.formatString("2017-06-03", format));
Student student6=new Student("bb",16,DateUtil.formatString("2017-06-03", format));
Student student7=new Student("bb",17,DateUtil.formatString("2017-06-03", format));
Student student8=new Student("dd",18,DateUtil.formatString("2017-06-04", format));
Student student9=new Student("cc",19,DateUtil.formatString("2017-06-04", format));
Student student10=new Student("dd",20,DateUtil.formatString("2017-06-04", format));
Student student11=new Student("aa",22,DateUtil.formatString("2017-06-01", format));List list=Lists.newArrayList();
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
list.add(student5);
list.add(student6);
list.add(student7);
list.add(student8);
list.add(student9);
list.add(student10);
list.add(student11);System.out.println("合并前list: "+list);
for(int i=0;i<list.size();i++){
Student student=list.get(i);
if (!student.getStatus().equals(1)) {
String store=student.getStore();
Date date=student.getDate();for (int j = i+1; j < list.size(); j++) { if (!list.get(j).getStatus().equals(1)) { Student mergeStudent=list.get(j); if (mergeStudent.getStore().equals(store) && DateUtils.isSameDay(date, mergeStudent.getDate())) { student.setMoney(student.getMoney()+mergeStudent.getMoney()); mergeStudent.setStatus(1); } } } }
}
System.out.println();
System.out.println("合并后list: "+list);效果如下:
合并前list: [
Student [store=bb, money=12, date=2017-06-01, status=0]
,
Student [store=aa, money=13, date=2017-06-01, status=0]
,
Student [store=bb, money=12, date=2017-06-01, status=0]
,
Student [store=dd, money=14, date=2017-06-02, status=0]
,
Student [store=cc, money=15, date=2017-06-03, status=0]
,
Student [store=bb, money=16, date=2017-06-03, status=0]
,
Student [store=bb, money=17, date=2017-06-03, status=0]
,
Student [store=dd, money=18, date=2017-06-04, status=0]
,
Student [store=cc, money=19, date=2017-06-04, status=0]
,
Student [store=dd, money=20, date=2017-06-04, status=0]
,
Student [store=aa, money=22, date=2017-06-01, status=0]
]合并后list: [
Student [store=bb, money=24, date=2017-06-01, status=0]
,
Student [store=aa, money=35, date=2017-06-01, status=0]
,
Student [store=bb, money=12, date=2017-06-01, status=1]
,
Student [store=dd, money=14, date=2017-06-02, status=0]
,
Student [store=cc, money=15, date=2017-06-03, status=0]
,
Student [store=bb, money=33, date=2017-06-03, status=0]
,
Student [store=bb, money=17, date=2017-06-03, status=1]
,
Student [store=dd, money=38, date=2017-06-04, status=0]
,
Student [store=cc, money=19, date=2017-06-04, status=0]
,
Student [store=dd, money=20, date=2017-06-04, status=1]
,
Student [store=aa, money=22, date=2017-06-01, status=1]
]解决 无用评论 打赏 举报
悬赏问题
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作