I have a trouble with ArrayList. I am filling Arraylist with following method.
private void fillData() {
mArrayList = new ArrayList<>();
DemoTestBean bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test1";
bean.percentage = 20;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test2";
bean.percentage = 30;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test3";
bean.percentage = 50;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "2";
bean.name = "Test4";
bean.percentage = 40;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "4";
bean.name = "Test5";
bean.percentage = 55;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "5";
bean.name = "Test6";
bean.percentage = 25;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test7";
bean.percentage = 60;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test8";
bean.percentage = 40;
mArrayList.add(bean);
}
Now I want to add duplicate object only once. But when I find duplicate id, I need to sum of percentage value and combine it to one. So new array will look alike as below:
private void fillData() {
mArrayList = new ArrayList<>();
DemoTestBean bean = new DemoTestBean();
bean.id = "1";
bean.name = "Test1";
bean.percentage = 100;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "2";
bean.name = "Test2";
bean.percentage = 40;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "4";
bean.name = "Test3";
bean.percentage = 55;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "5";
bean.name = "Test4";
bean.percentage = 25;
mArrayList.add(bean);
bean = new DemoTestBean();
bean.id = "6";
bean.name = "Test5";
bean.percentage = 100;
mArrayList.add(bean);
}
That means we have 3 duplicated objects having id 1 and in new array we need to sum of all percentage value which have same id and consider it as a one object. So our new arraylist build like this way. But i don't know how can I figured out this problem. Please help me.