8 java predicate java-8 java-stream
我正在尝试在中搜索元素List<String>,但收到此编译错误:
get(int)类型中的方法List<String>不适用于参数字符串。
这是代码:
private boolean findIdInTheList(List<String> ids, String id) {
String theId = ids.stream()
.filter(elem -> id.equals(ids.get(elem)))
.findAny()
.orElse(null);
}
Run Code Online (Sandbox Code Playgroud)
ids是一个List<String>并且elem是一个String。因此ids.get(elem)无效,因为List没有get采用String.
它应该是:
private boolean findIdInTheList(List<String> ids, String id) {
String theId = ids.stream()
.filter(elem -> id.equals(elem))
.findAny()
.orElse(null);
}
Run Code Online (Sandbox Code Playgroud)
哦,由于您的方法有boolean返回类型,因此您应该添加一个 return 语句。
您可以使用以下方法简化管道anyMatch:
private boolean findIdInTheList(List<String> ids, String id) {
return ids.stream()
.anyMatch(elem -> id.equals(elem));
}
Run Code Online (Sandbox Code Playgroud)
这里你得到一个boolean指示是否id在List. 我认为返回String本身没有意义,因为您已经知道它等于id。
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |