public class Main {
public static void main(String[] args) {
Data object= new Data();
object.setQuantity(5);
object.setDate("05/06/2020");
object.setMaterial("96111");
Data object1= new Data();
object1.setQuantity(2);
object1.setDate("05/06/2020");
object1.setMaterial("96111");
Data object2= new Data();
object2.setQuantity(3);
object2.setDate("05/06/2020");
object2.setMaterial("96111");
Data object3= new Data();
object3.setQuantity(3);
object3.setDate("05/06/2020");
object3.setMaterial("96112");
Data object4= new Data();
object4.setQuantity(9);
object4.setDate("05/07/2020");
object4.setMaterial("96113");
ArrayList<Data> list= new ArrayList<Data>();
list.add(object);
list.add(object1);
list.add(object2);
list.add(object3);
list.add(object4);
HashMap<String, Data> map = new HashMap<>();
for(Data obj : list) {
if (map.containsKey(obj.getDate())) {
map.put(obj.getDate(),new Data(map.get(obj.getDate()).getQuantity() + (obj.getQuantity()), obj.getDate(), obj.getMaterial()));
} else {
map.put(obj.getDate(),obj);
}
}
System.out.println(map);
}
}
Based on date and material , quantity should be added. Output should come as shown in below:
05/07/2020=(material:96113 date:05/07/2020 quantity:9), 05/06/2020=(material:96112 date:05/06/2020 quantity:3), 05/06/2020=(material:96111 date: 05/06/2020 quantity:10}
But I am getting output as:
05/07/2020=(material:96113 date:05/07/2020 quantity:9), 05/06/2020=(material:96112 date:05/06/2020 quantity:13)}