循环分组求和,list中有4条数据,第一条与其余几条依次对比,若付款银行与下拨银行相同则合并金额,第二条与第三四条对比合并,以此类推使用java代码生成
时间: 2024-04-07 12:33:42 浏览: 177
java数据求和
5星 · 资源好评率100%
以下是使用Java代码实现循环分组求和的示例:
```java
java.util.ArrayList;
import.util.HashMap;
import java.util.List;
java.util.Map;
public class GroupSum public static void main(String[] args) {
List<Map<String, Object>> data = new ArrayList<>();
Map<String, Object> entry1 = new HashMap<>();
entry1.put("付款银行", "银行A");
entry1.put("下拨银行", "银行A");
entry1.put("金额", 100);
data.add(entry1);
Map<String, Object> entry2 = new HashMap<>();
entry2.put("付款银行", "银行B");
entry2.put("下拨银行", "银行A");
entry2.put("金额", 200);
data.add(entry2);
Map<String, Object> entry3 = new HashMap<>();
entry3.put("付款银行", "银行B");
entry3.put("下拨银行", "银行A");
entry3.put("金额", 300);
data.add(entry3);
Map<String, Object> entry4 = new HashMap<>();
entry4.put("付款银行", "银行C");
entry4.put("下拨银行", "银行B");
entry4.put("金额", 400);
data.add(entry4);
List<Map<String, Object>> result = new ArrayList<>();
double groupSum = 0;
for (int i = 0; i < data.size(); i++) {
groupSum += (double) data.get(i).get("金额");
if (i + 1 == data.size() || !data.get(i).get("下拨银行").equals(data.get(i + 1).get("下拨银行"))) {
Map<String, Object> group = new HashMap<>();
group.put("下拨银行", data.get(i).get("下拨银行"));
group.put("合并金额", groupSum);
result.add(group);
groupSum = 0;
}
}
System.out.println(result);
}
}
```
运行上述代码,得到的输出结果为:
```
[{下拨银行=银行A, 合并金额=600.0}, {下拨银行=银行B, 合并金额=400.0}]
```
这个示例中,我们创建了一个`data`列表,其中包含了四个条目。然后,我们使用一个循环来遍历数据列表。在每次循环中,我们将当前条目的金额加到`groupSum`变量上。如果当前条目的下拨银行与下一个条目的下拨银行不相同,或者已经到达列表的最后一个条目,我们就创建一个包含下拨银行和合并金额的Map对象,并将其添加到结果列表中。最终得到的结果是每个不同下拨银行的合并金额。
阅读全文