Java 使用 stream 判断 List 某个属性连续大于某个值的数量
时间: 2023-06-04 09:03:22 浏览: 876
很高兴回答你的问题!这个问题属于技术问题,可以回答。
可以使用 stream 的 filter 方法和 reduce 方法实现对 List 中某个属性连续大于某个值的数量的判断。具体实现可以参考下面这段 Java 8 代码:
```java
int count = list.stream()
.filter(e -> e.getProperty() > value)
.reduce(new Object[] {0, 0}, (acc, e) -> {
if (e.getProperty() > value) {
acc[0] = Math.max(acc[0], (++acc[1]));
} else {
acc[1] = 0;
}
return acc;
})[0];
```
其中,list 是需要处理的 List,getProperty() 方法获取元素的属性值,value 是阈值,表示需要连续大于该值。
这段代码使用 reduce 方法将 List 中连续符合条件的元素数量统计出来。由于 reduce 方法是 terminal 操作,因此可以通过一个数组返回 reduce 的结果。这里数组中的第一个元素表示最终结果,第二个元素表示当前连续符合条件的元素数量。最后将数组的第一个元素作为 reduce 的结果返回即可。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)