У меня есть POJO вроде следующего:Как рефакторировать/агрегировать числовые значения в ArrayList в Java?
public class AgentSales {
private String agent;
private int month;
private int year;
private int salesCount;
public AgentSales(String agent, int month, int year, int salesCount) {
// initializers ...
}
// getters & setters
// ...
}
и коллекция вроде следующего:
ArrayList<AgentSales> salesList = new ArrayList<AgentSales>();
salesList.add(new AgentSales("Ben", 1, 2013, 3));
salesList.add(new AgentSales("Ben", 1, 2013, 2));
salesList.add(new AgentSales("Ben", 2, 2013, 1));
salesList.add(new AgentSales("Ben", 3, 2013, 1));
salesList.add(new AgentSales("Ben", 2, 2013, 2));
salesList.add(new AgentSales("Tim", 1, 2013, 1));
salesList.add(new AgentSales("Tim", 1, 2013, 1));
salesList.add(new AgentSales("Tim", 2, 2013, 1));
salesList.add(new AgentSales("Tim", 4, 2013, 1));
salesList.add(new AgentSales("Tim", 2, 2013, 5));
salesList.add(new AgentSales("Joe", 2, 2013, 1));
salesList.add(new AgentSales("Joe", 2, 2013, 2));
salesList.add(new AgentSales("Joe", 3, 2013, 1));
salesList.add(new AgentSales("Joe", 3, 2013, 2));
salesList.add(new AgentSales("Joe", 3, 2013, 1));
Как я мог рефакторинга, рефакторинга/агрегировать содержимое этого ArrayList, так что несколько элементов, соответствующих в том же месяце и агент объединяются в 1 с суммированным значением SalesCount?
Agent | month | year | sales count
----------------------------------
Ben | 1 | 2013 | 5
Ben | 2 | 2013 | 3
Ben | 3 | 2013 | 1
Tim | 1 | 2013 | 2
Tim | 2 | 2013 | 6
Если я использую конкатенированный ключ как агент + месяц + год, как бы обработать его, чтобы вернуть агрегированные значения в ArrayList в том же формате? – fledglingCoder
хороший. +1 .. – jmcg