Joh*_*yun 5 java lambda java-8
我正在尝试写下列条件:
if(javaList.contains("aaa")||javaList.contains("abc")||javaList.contains("abc")) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能以更好的方式做到这一点?
contains在a Set上运行比在a上运行通常更有效List.因此,我建议您创建一个Set要测试的元素,然后流式传输List以查看其中的任何元素是否匹配:
怎么样:
if (javaList.stream().anyMatch(e -> Set.of("aaa","abc","def").contains(e)))
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 java 8 及更高版本,则可以使用以下代码:
if (javaList.stream().anyMatch(l -> l.matches("aaa|xyz|abc")))
Run Code Online (Sandbox Code Playgroud)
您可以使用.matches()并传入由OR符号分隔的字符串。String中的参数,表示为正则表达式。.matches()