java - 如何正确地使用 Java 8 功能(如流、forEach 等)进行嵌套迭代?
问题描述
重写这样的东西的优雅方法是什么
private boolean containsNulls(HashBasedTable table) {
for(Object column : table.columnKeySet()) {
for(Object row : table.rowKeySet()) {
if(table.get(row, column) == null) {
return true;
}
}
}
return false;
}
使用 Java 8 功能?
我正在寻找类似的东西
tableCells.stream().filter(cell -> cell.getValue() == null)
.findFirst().orElse(null);
(每个Return from lambda forEach() in java)但是在将其编写为嵌套循环时遇到了一些麻烦。
建议?
解决方案
你可以2嵌套anyMatch():
private boolean containsNulls(HashBasedTable table) {
return table.columnKeySet()
.stream()
.anyMatch(column -> table.rowKeySet()
.stream()
.anyMatch(row -> table.get(row, column) == null)
);
}
推荐阅读
- google-cloud-pubsub - 使用 Google Pub/Sub Java 客户端库而不添加 GOOGLE_APPLICATION_CREDENTIALS 环境变量进行身份验证
- c# - C# CmdLet 二进制 | 直接在导入时添加 $env:Variable
- php - SQLSTATE [23502]:非空违规:7 错误:列中的空值
- php - error en Magento 2 (Invalid Form Key. 请刷新页面)
- reactjs - ThemeProvider 不会改变组件的主题,React
- php - WordPress 从帖子 ID 重定向到另一个帖子 ID
- java - 将时间段拆分为每小时间隔
- angular - 在 Angular 9 中使用 hhtp 发布请求
- python - 如何使用 pyppeteer/puppeteer 单击动态生成的按钮?
- ios - Post Data Not Working // 访问闭包之外的数据 // Swift Firebase