如何遍历集合并每次都将结果相加?

时间:2019-05-09 09:42:18

标签: java arrays for-loop set

我试图遍历一组事件并获取每个事件的开始和结束时间,并计算每个事件的持续时间。然后,我需要将所有持续时间加在一起以获得总时间。我正在使用的代码仅获取上一个事件的持续时间,并且未将它们全部加在一起。我不太确定我使用的循环是否正确?

Set<Event> events = eventService.findByUsers(user);
Long duration = null;

for(Event event : events)
{
    LocalTime startTime = event.getStart().toLocalTime();
    LocalTime endTime = event.getEnd().toLocalTime();

    duration = Duration.between(startTime, endTime).toHours();
    System.out.println("The time bewtween shifts is " + duration);

   Long totalTime = duration += duration;

}

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

totalTime变量的声明移到循环外:

Set<Event> events = eventService.findByUsers(user);
long totalTime = 0;
for(Event event : events)
{
   LocalTime startTime = event.getStart().toLocalTime();
   LocalTime endTime = event.getEnd().toLocalTime();

   long duration = Duration.between(startTime, endTime).toHours();
   System.out.println("The time bewtween shifts is " + duration);

   totalTime += duration;
}

使用当前的方法,totalTime变量将在每次迭代时再次初始化,因此将仅包含最后的持续时间。