删除数据和Arraylist循环

时间:2012-02-13 04:55:51

标签: java

我有一个带有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();

有人能帮帮我吗?非常感谢!

2 个答案:

答案 0 :(得分:0)

你可以这样做。

  1. 遍历列表。
  2. 将列表中的每个项目与一个ID匹配。
  3. 如果匹配找到“Sum Pay”。
  4. 继续列表中的每个项目。

答案 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());
}