1
Orderid     Amount      order id    Amount
c4         1            c2          60
c2         10           c3          38
c2         20           c4          13
c2         30           null           null
c3         11           null           null
c3         13           null           null
c3         14           null           null
c4         12           null           null

上面是两个数组(订单 id,金额)第一个数组由包含重复 orderid 及其值的元素组成,我试图找出不同的 orderid 及其总和,如第二个数组所示。为此,我编写了以下代码。它不工作。请帮忙

for(int y=0;y<data.length;y++) {
                  if(data[y][0].equals(data[y+1][0])==true)
                  { 
                      tx=(Double) data[y][1]+(Double)data [y+1][1];

                     data[y+1][1] = tx;
                     data[y][1]=tx;
                     data[y][0]=null;
                  }    
                  if(y+1 > data.length)
                  {
                      break;
                  }
                 System.out.println("Tx="+tx);
                  }
4

2 回答 2

3

考虑使用 aHashMap<String><Integer>来跟踪订单 ID 和总数。遍历数组中的项目,对于每个订单 ID/金额对,检查订单 ID 是否在哈希图中。如果它不存在,将其及其数量插入哈希图中;如果是,则将金额添加到哈希图中的该位置。

于 2013-01-25T18:46:37.943 回答
0

将您的值放入 Guava 的 ListMultimap 接口中。它允许重复键和重复键/值对。

更多信息:Java HashMap 重复元素

于 2013-01-25T18:45:45.830 回答