如何使用Java 8的Stream API,通过pojoList中的deviceTime字段(Date类型的)与当前时间进行比较,检查它们之间的时间差是否小于2分钟,然后剔除掉
时间: 2024-12-10 10:28:29 浏览: 18
在Java 8的Stream API中,你可以使用`filter()`、`map()`和`java.time.Duration`类来完成这个任务。首先,确保你的Pojo类有一个`getDeviceTime()`方法返回Date对象。这里是一个步骤示例:
```java
import java.time.Duration;
import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;
// 假设你的Pojo类叫做DeviceData,包含deviceTime字段
class DeviceData {
private LocalDate deviceTime;
// getters and setters...
public LocalDate getDeviceTime() {
return deviceTime;
}
}
List<DeviceData> pojoList = ... // 你的pojoList
// 使用LocalDate而不是Date,因为Java 8的流API更偏爱不可变日期
List<DeviceData> filteredList = pojoList.stream()
.filter(device -> {
LocalDate currentTime = LocalDate.now();
Duration timeDifference = Duration.between(device.getDeviceTime(), currentTime);
return timeDifference.toMinutes() < 2; // 检查时间差是否小于2分钟
})
.collect(Collectors.toList());
// 这样filteredList就只包含那些设备时间与现在相差小于2分钟的数据了
```
阅读全文
相关推荐


















