sri*_*nth 2 java arraylist java-8
我有一个列表Objects与java.util.date字段为一体.如何Objects根据日期(每小时)分离/过滤.即例如:Objects日期范围从12.00到13:00应分开或形成新列表,依此类推每小时.帮助我实现这一目标.
您可以流式传输原始对象列表,然后使用groupingBy收集器.
这将为您提供Map键为小时的位置,值为该小时的对象列表.
List<MyObject> objects = new ArrayList<>();
Map<Integer, List<MyObject>> objectsPerHour = objects.stream()
.collect(Collectors.groupingBy(MyObject::getHour));
Run Code Online (Sandbox Code Playgroud)
我假设了这样的实现MyObject(你可以getHour()像你想的那样实现):
class MyObject {
private Date date;
public int getHour() {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).getHour();
}
}
Run Code Online (Sandbox Code Playgroud)