我有一个对象
列表,其中java.util.date
作为字段之一。如何根据日期(每小时)分离/过滤对象
。例如:日期范围从 12:00 到 13:00 的对象
应该每小时分开或形成一个新列表,依此类推。帮助我实现这一目标。
最佳答案
您可以流式传输原始对象列表,然后使用groupingBy
集电极。
这将为您提供一个Map
,其中键是小时,值是该小时的对象列表。
List<MyObject> objects = new ArrayList<>();
Map<Integer, List<MyObject>> objectsPerHour = objects.stream()
.collect(Collectors.groupingBy(MyObject::getHour));
我假设 MyObject
的实现如下(您可以像您想要的那样实现 getHour()
):
class MyObject {
private Date date;
public int getHour() {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).getHour();
}
}
关于java - 根据日期(每小时)对对象进行分组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162938/