Rol*_*and 10 java collections iterator iterable
是否有一个简单的方法来检查元素是否包含在迭代或迭代器中,类似于Collection.contains(Object o)方法?
即不必写:
Iterable<String> data = getData();
for (final String name : data) {
if (name.equals(myName)) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
我想写:
Iterable<String> data = getData();
if (Collections.contains(data, myName)) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
我真的很惊讶没有这样的事情.
在Java 8中,您可以将其Iterable转换为a Stream并使用anyMatch它:
String myName = ... ;
Iterable<String> data = getData();
return StreamSupport.stream(data.spliterator(), false)
.anyMatch(name -> myName.equals(name));
Run Code Online (Sandbox Code Playgroud)
或使用方法参考,
return StreamSupport.stream(data.spliterator(), false)
.anyMatch(myName::equals);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8902 次 |
| 最近记录: |