在我的应用程序中,如果另一个列表不包含这些元素,我尝试将列表的元素添加到另一个列表中。
我试着这样做:
List<String> list1 = dto.getList1() != null ? couponDto.getLis1(): new ArrayList<>();
list1.stream().filter(item -> !secondList.contains(item)).map(secondList::add);在像上面这样使用它时,我没有收到任何错误,但是item没有添加到secondList中。在花了太多时间之后,我能把它修好如下:
List<String> list1 = dto.getList1() != null ? couponDto.getLis1(): new ArrayList<>();
list1.stream().filter(item -> !secondList.contains(item)).forEachOrdered(secondList::add);我知道map是用来将一个值映射到另一个值的,所以不是通过将项目添加到列表中来实现的吗?
有人能帮我理解这件事吗?
谢谢
发布于 2022-06-18 14:21:47
一旦您已经流数据,您需要调用终端函数(例如:forEach,collect)来完成操作。在您的代码中,forEachOrdered是一个终端操作,但map不是,所以它工作了。
https://stackoverflow.com/questions/72569919
复制相似问题