在Java中如何将(time,int)的数据根据time中对应的int累加求和,并输出成(time,int)的格式,其中time为24个小时的任意时段
时间: 2024-04-14 14:27:17 浏览: 39
java类 对时间进行各种处理
您可以使用一个`HashMap`来存储时间和对应的整数值。首先,遍历给定的数据列表,将时间作为键,整数值作为值存储到`HashMap`中。如果遇到相同的时间,则将对应的整数值累加。接下来,创建一个新的列表,将`HashMap`中的时间和累加后的整数值转换为`(time, int)`格式,并添加到新的列表中。最后,按照时间顺序对新列表进行排序,并输出结果。
下面是一个示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 示例数据
List<Pair<String, Integer>> data = new ArrayList<>();
data.add(new Pair<>("12:00", 5));
data.add(new Pair<>("13:00", 10));
data.add(new Pair<>("12:00", 3));
data.add(new Pair<>("14:00", 7));
// 使用HashMap累加求和
Map<String, Integer> sumMap = new HashMap<>();
for (Pair<String, Integer> pair : data) {
String time = pair.getKey();
int value = pair.getValue();
sumMap.put(time, sumMap.getOrDefault(time, 0) + value);
}
// 转换为(time, int)格式,并排序
List<Pair<String, Integer>> result = new ArrayList<>();
for (Map.Entry<String, Integer> entry : sumMap.entrySet()) {
result.add(new Pair<>(entry.getKey(), entry.getValue()));
}
result.sort(Comparator.comparing(Pair::getKey));
// 输出结果
for (Pair<String, Integer> pair : result) {
System.out.println(pair.getKey() + ", " + pair.getValue());
}
}
}
```
输出结果为:
```
12:00, 8
13:00, 10
14:00, 7
```
请注意,示例代码中使用了`Pair`类来表示时间和整数值的键值对。如果您在使用时找不到`Pair`类,可以自行定义一个简单的键值对类来替代。
阅读全文