Mil*_*jac 106 java lambda java-8
具体来说,我有TabPane,我想知道是否有特定ID的元素.
所以,我想用Java中的lambda表达式做到这一点:
boolean idExists = false;
String idToCheck = "someId";
for (Tab t : tabPane.getTabs()){
if(t.getId().equals(idToCheck)) {
idExists = true;
}
}
Run Code Online (Sandbox Code Playgroud)
Mas*_*dul 237
尝试使用anyMatchLambda Expression.这是更好的方法.
boolean idExists = tabPane.getTabs().stream()
.anyMatch(t -> t.getId().equals(idToCheck));
Run Code Online (Sandbox Code Playgroud)
jFr*_*tic 44
虽然接受的答案是正确的,但我会添加一个更优雅的版本(在我看来):
boolean idExists = tabPane.getTabs().stream()
.map(Tab::getId)
.anyMatch(idToCheck::equals);
Run Code Online (Sandbox Code Playgroud)
不要忽视使用Stream#map(),它允许在应用之前展平数据结构Predicate.