一个集合里由许多[月份,金额]组成,如何合并每个相同月份的金额
时间: 2024-04-09 09:33:34 浏览: 9
要合并集合中相同月份的金额,您可以使用一个Map来存储每个月份对应的金额总和。以下是一个示例代码:
```java
import java.util.*;
public class MergeAmounts {
public static void main(String[] args) {
List<String[]> amountsList = new ArrayList<>();
amountsList.add(new String[]{"January", "100"});
amountsList.add(new String[]{"February", "200"});
amountsList.add(new String[]{"January", "150"});
amountsList.add(new String[]{"March", "300"});
amountsList.add(new String[]{"February", "250"});
Map<String, Integer> mergedAmounts = new HashMap<>();
for (String[] amount : amountsList) {
String month = amount[0];
int value = Integer.parseInt(amount[1]);
if (mergedAmounts.containsKey(month)) {
int sum = mergedAmounts.get(month) + value;
mergedAmounts.put(month, sum);
} else {
mergedAmounts.put(month, value);
}
}
for (Map.Entry<String, Integer> entry : mergedAmounts.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
在这个示例中,我们创建了一个包含多个[月份,金额]对的amountsList集合。然后,我们使用一个Map mergedAmounts 来存储每个月份对应的金额总和。
我们遍历amountsList,对于每个月份和金额对,我们首先检查mergedAmounts中是否已经包含该月份的键。如果已经存在,我们将该月份对应的值与新的金额相加,并将结果放回mergedAmounts中。如果该月份是第一次出现,我们将该月份作为键,金额作为值放入mergedAmounts中。
最后,我们遍历mergedAmounts并打印每个月份和对应的金额总和。
输出结果将如下所示:
```
January: 250
February: 450
March: 300
```
这样,您就成功合并了集合中相同月份的金额。