如果字符串包含数组列表中的短语,则可以更快地迭代



我正在用以下代码迭代我的字符串:

public boolean checkName(String nameInputed, ArrayList<String> phraseList) {

boolean match = false;        
for (String phrase : phraseList) {
if (nameInputed.matches(".*" + phrase + ".*")) {
result = true;
}
}
return match ;
}

我想知道是否有一种更快的方法来检查一大堆短语。

那。。。

public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
return phraseList.stream()
.filter(phrase -> nameInputed.contains(phrase))
.findFirst()
.isPresent();
}

如果你不想使用流API,那么。。。

public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
for (String phrase : phraseList) {
if (nameInputed.contains(phrase)) {
return true;
}
}
return false;
}

编辑

正如@user16320675在此评论中所建议的那样

public boolean checkName(String nameInputed, java.util.List<String> phraseList) {
return phraseList.stream()
.anyMatch(phrase -> nameInputed.contains(phrase));
}

最新更新