Please I'm not good in english and a beginner in programming so please be patient with me.
Please see my code first so you will understand better what I'm having trouble with.
I have created an object named ObjAbc.java:
package exer;
public class ObjAbc {
    private Integer code;
    private Integer value;
    public ObjAbc () {
    }
    public ObjAbc (Integer code, Integer value) {
            this.code = code;
            this.value = value;
    }
    public Integer getCode() {
            return code;
    }
    public void setCode(Integer code) {
            this.code = code;
    }
    public Integer getValue() {
            return value;
    }
    public void setValue(Integer value) {
            this.value = value;
    }
    @Override
    public String toString() {
           return "ObjAbc [code=" + code + ", value=" + value + "]";
    }
}
Then I have a class ObjAbcTest.java
package exer;
import java.util.ArrayList;
import java.util.List;
public class ObjAbcTest {
    public static List<ObjAbc> populateList() {
        List<ObjAbc> objAbcs = new ArrayList<ObjAbc>();
        objAbcs.add(new ObjAbc(1, 11));
        objAbcs.add(new ObjAbc(2, 25));
        objAbcs.add(new ObjAbc(3, 125));
        objAbcs.add(new ObjAbc(4, 73));
        objAbcs.add(new ObjAbc(5, 12));
        objAbcs.add(new ObjAbc(1, 12));
        objAbcs.add(new ObjAbc(3, 1));
        return objAbcs;
    }
    public static void main(String[] args) {
        List<ObjAbc> list = populateList();
        List<ObjAbc> newList = new ArrayList<ObjAbc>();
        for (ObjAbc o : list) {
            if (!newList.isEmpty()) {
                for (ObjAbc n : newList) {
                    if (o.getCode().intValue() == n.getCode().intValue()) {
                        n.setValue(n.getValue() + o.getValue());
                        break;
                    } 
                    else {
                        newList.add(o);
                    }
                }
            } 
            else {
                newList.add(o);
            }
        }
        for (ObjAbc n : newList) 
            System.out.println(n.toString());
    }
}
What Im trying to do is to sum all the values of all ObjAbc that have the same code but remove the other ObjAbc after I summed up the values which means the object must be displayed once but the values should be the total.
Example:
Input:
ObjAbc [code=1, value=11]
ObjAbc [code=2, value=25]
ObjAbc [code=3, value=125]
ObjAbc [code=4, value=73]
ObjAbc [code=5, value=12]
ObjAbc [code=1, value=12]
ObjAbc [code=3, value=1]
Expected output:
ObjAbc [code=1, value=23]
ObjAbc [code=2, value=25]
ObjAbc [code=3, value=126]
ObjAbc [code=4, value=73]
ObjAbc [code=5, value=12]
But what I get is:
Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at exer.ObjAbcTest.main(ObjAbcTest.java:25)
 
     
     
     
     
     
    