我正在尝试在 List<String>
中搜索元素我得到了这个编译错误:
the method
get(int)
in the typeList<String>
is not applicable for the argument string.
这是代码:
private boolean findIdInTheList(List<String> ids, String id) {
String theId = ids.stream()
.filter(elem -> id.equals(ids.get(elem)))
.findAny()
.orElse(null);
}
最佳答案
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);
}
哦,因为你的方法有一个 boolean
返回类型,你应该添加一个返回语句。
您可以使用 anyMatch
简化管道:
private boolean findIdInTheList(List<String> ids, String id) {
return ids.stream()
.anyMatch(elem -> id.equals(elem));
}
在这里你得到一个boolean
这表示是否id
在 List
中找到.我认为返回 String
没有意义本身,因为你已经知道它等于 id
.
关于java - List<String> 类型中的方法 get(int) 不适用于 Java 8 中的参数字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55489865/