Android Java:使用Stream API过滤另一个列表中的元素列表



我不能粘贴太多代码,因为我不确定如何实现我的目标,我用Stream编写的每一个代码都以红色下划线结尾。

我知道如何根据属性过滤列表,比如:

List<RecordDTO> filteredRecords = Stream.of(records).filter(item -> item.getIdTest().equals(test.getIdTest())).collect(Collectors.toList());

但不知道如何根据另一个列表来做。

我的应用程序可以处理测试和记录,并且我有一个列表<测试>testsList,其中每个测试都有一个id,以及一个List<记录>records列出每个记录都有idTest的位置。

从完整的记录列表中,我需要获得包含属于testsList的idTest的记录,但不确定如何使用Stream。

我只是想避免使用for循环,并使用更智能的代码,这就是为什么我尝试使用Stream进行过滤。

有什么例子吗?

好吧,我想我自己找到了一个解决方案。希望它对其他人有用。

List<String> testsIds = Stream.of(tests4Subject).map(TestDTO::getIdTest).collect(Collectors.toList());
List<RecordDTO> filteredRecords = New ArrayList();
if(testsIds!=null)
{
filteredRecords = Stream.of(records).filter(p -> testsIds.contains(p.getIdTest())).collect(Collectors.toList());
}

最新更新