我有一个带有3个变量的对象(id(字符串),year(int),pay(double)) 我创建了一个包含对象的arraylist。
所以现在我需要总结薪水,如果他们有相同的ID和年份,并将其存储在一个新的阵列!那可能吗?
ArrayList<Earning> temp = new ArrayList();
ArrayList<Earning> temp = new ArrayList();
double tempEarning = 0.0;
int count = 0;
for (int i = 0; i < weeklyEarnings.size(); i++) {
Earning e = weeklyEarnings.get(i);
String id = e.getId();
int year = e.getYear();
tempEarning = e.getEarning();
Earning e2 = weeklyEarnings.get(i + 1);
if (id.equalsIgnoreCase(e2.getId()) && year == e2.getYear()) {
tempEarning += e2.getEarning();
} else {
Earning tempEarn = new Earning();
tempEarn.setEarning(tempEarning);
tempEarn.setId(id);
tempEarn.setYear(year);
temp.add(tempEarn);
count++;
tempEarning = 0.0;
}
}
weeklyEarnings.clear();
weeklyEarnings = temp;
temp.clear();
有人能帮帮我吗?非常感谢!
答案 0 :(得分:0)
你可以这样做。
答案 1 :(得分:0)
试试这个:
HashMap<String, Earning> totalEarnings = new HashMap<String, Earning>(); for (Earning earning : weeklyEarnings) { Earning tmpEarning = totalEarnings.get(earning.getId() + earning.getYear()); if (tmpEarning == null) { tmpEarning = new Earning(); tmpEarning.setId(earning.getId()); tmpEarning.setYear(earning.getYear()); totalEarnings.put(earning.getId() + earning.getYear(), tmpEarning); } tmpEarning.setEarning(tmpEarning.getEarning() + earning.getEarning()); } for (Earning earning : totalEarnings.values()) { System.out.println(earning.getId() + ' ' + earning.getyear() + ' ' + earning.getEarning()); }