Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用流获取ID为的列表_Java - Fatal编程技术网

Java 使用流获取ID为的列表

Java 使用流获取ID为的列表,java,Java,我想使用以下代码中的流实现搜索: DTO: 排序: 但是我得到错误类型RiskFilters的findById(int)方法未定义您能指导我如何在列表filterList中查找元素吗 更改filter()代码如下 filterList.stream() .filter(flr -> flr.id == <<id>>); filterList.stream() .filter(flr->flr.id==); 筛选方法需要一个谓词对象作为参数。从流API中:S

我想使用以下代码中的流实现搜索:

DTO:

排序:

但是我得到错误
类型RiskFilters的findById(int)方法未定义
您能指导我如何在列表
filterList
中查找元素吗

更改
filter()
代码如下

filterList.stream()
    .filter(flr -> flr.id == <<id>>);
filterList.stream()
.filter(flr->flr.id==);

筛选方法需要一个谓词对象作为参数。从流API中:
Stream filter(谓词我创建了这个
RiskFilters filter=filterList.Stream().filter(filter->newFiltersPositionsList.get(i).getId()==(filter.getId()).findAny().orElse(null)
但我得到的局部变量是我在封闭范围内定义的,必须是final或finalhm…类似于这样?但我只需要得到一个项,而不是我认为的列表。因此,调用collect方法,而不是collect方法。它将返回一个可选的,然后您只需检查它是否有内容。可选的op=filterList.stream().filter(f->f.id==some id).findAny();现在我得到了在封闭范围中定义的局部变量必须是final或实际上是final的
,这就是为什么在lambda函数的for循环中使用I变量,这是不允许的。您可以使用AtomicInteger来包装I变量,因为原子对象可以在lambda表达式中使用
List<Filters> filterList = filterService.findFiltersByTerminalId(terminalId);

for (int i = 0; i < newFiltersPositionsList.size(); i++) {
    Filters filter = filterList.findById(newFiltersPositionsList.get(i).getId());
    filter.setPosition(newFiltersPositionsList.get(i).getPosition());
    filterService.save(filter);
}
filterList.stream()
    .filter(filter -> filter.findById(newFiltersPositionsList.get(i).getId()));
filterList.stream()
    .filter(flr -> flr.id == <<id>>);
List<Filters> filteredList =  filterList.stream().filter(new Predicate<Filters>() {
        @Override
        public boolean test(Filter f) {
            return f.id == some-id;
        }
}).collect(Collectors.toList());
@FunctionalInterface
public interface Predicate<T> {

    boolean test(T t)
};
List<Filters> filteredList =  filterList.stream().filter(f -> f.id == some-id).collect(Collectors.toList());