我希望使用Java8流创建一个与以下方法等效的方法,但无法做到这一点。有人能带我来吗?
public boolean checkCondition(List<String> ruleValues, List<String> inputValues) {
boolean matchFound = false;
for (String ruleValue : ruleValues) {
for (String inputValue : inputValues) {
if (ruleValue.equalsIgnoreCase(inputValue)) {
matchFound = true;
break;
}
}
}
return matchFound;
}
等效Java 8代码:
public boolean checkCondition(final List<String> ruleValues, final List<String> inputValues) {
final Predicate<String> checkRuleValue = ruleValue -> inputValues
.stream()
.anyMatch(ruleValue::equalsIgnoreCase);
return ruleValues
.stream()
.anyMatch(checkRuleValue);
}
试试这个方法。它将在O(n)
时间内运行:
public boolean checkCondition(List<String> ruleValues, List<String> inputValues) {
Set<String> rules = ruleValues.stream()
.map(String::toLowerCase)
.collect(toSet());
return inputValues.stream()
.map(String::toLowerCase)
.anyMatch(rules::contains);
}
我想写这样的东西: 测试模型是否具有来自控制器方法中@Valid注释的 BindingResult 错误,或者我自己的错误之一已添加到页面中。这可能吗? 我想类似于hamcrest的< code>anyOf()可能是我想要的,但是我不能让它工作。
Navicat Data Modeler 让你创建逻辑模型,包括实体、属性和关系。 若要创建一个逻辑模型,从菜单栏选择“文件”->“新建”。在“新建模型”窗口中,选择“模型类型”为“逻辑”。 你也可以使用下列的功能来创建一个逻辑模型: 从数据库导入 - 从现有的数据库/模式或 ODBC 数据源逆向工程。 模型转换 - 从一个物理或概念模型转换。
Navicat Data Modeler 让你创建逻辑模型,包括实体、属性和关系。 若要创建一个逻辑模型,从菜单栏选择“文件”->“新建模型”。在“新建模型”窗口中,选择“模型类型”为“逻辑”。 你也可以使用下列的功能来创建一个逻辑模型: 从数据库导入 - 从现有的数据库/模式或 ODBC 数据源逆向工程。 模型转换 - 从一个物理或概念模型转换。
Navicat Premium 让你创建逻辑模型,包括实体、属性和关系。 在“新建模型”窗口中,选择“模型类型”为“逻辑”。
Navicat Premium 让你创建逻辑模型,包括实体、属性和关系。 在“新建模型”窗口中,选择“模型类型”为“逻辑”。