mengxr1203 2018-03-07 07:19 采纳率: 0%
浏览 1609
已结题

List相同字段合并问题

图片说明
List里有多对象,每对象有货名String和货量Double的字段,如货名相同货量就相加,结果在新CargoList里只有一个对象了四条数据IPE:1400,BNZ:1100,VAM:1000,CSS:1000

  • 写回答

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 电脑桌面设定一个区域禁止鼠标操作