我不能粘贴太多代码,因为我不确定如何实现我的目标,我用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());
}