/******************************************************************************
Online Java Compiler.
Code, Compile, Run and Debug java program online.
Write your code in this editor and press "Run" button to execute it.
*******************************************************************************/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.AbstractMap.SimpleEntry;
import java.util.stream.Collectors;
public class Main {
class Data{
Integer quantity;
String date;
String material;
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getMaterial() {
return material;
}
public void setMaterial(String material) {
this.material = material;
}
public Data(Integer quantity, String date, String material) {
super();
this.quantity = quantity;
this.date = date;
this.material = material;
}
public Data() {
}
@Override
public String toString() {
return "Data [quantity=" + quantity + ", date=" + date + ", material=" + material + "]";
}
}
void solve() {
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);
List<Data> res = new ArrayList<>(list.stream()
.collect(Collectors.toMap(
e -> new SimpleEntry<String, String>(e.getDate(), e.getMaterial()), e -> e,
(a, b) -> new Data(a.getQuantity() + b.getQuantity(), a.getDate(), a.getMaterial())))
.values());
HashMap<String, Data> map = new HashMap<>();
for(Data obj : res) {
System.err.println(obj.toString());
}
}
public static void main(String[] args) {
Main test = new Main();
test.solve();
}
}