removeIf如果名称或代码为空,我正在使用从列表中删除某些对象:
tables.removeIf(t -> ((t.getName() == null) || (t.getCode() == null)));
Run Code Online (Sandbox Code Playgroud)
有什么方法可以获取t此处已删除的实际项目吗?也许是已删除项目的列表,或者更好的是,已删除项目的流?
谢谢
您可以根据您的标准进行分区,然后将结果用于您想要的任何内容:
Map<Boolean, List<MyClass>> split = tables.stream()
.collect(Collectors.partitioningBy(t ->
t.getName() == null || t.getCode() == null));
List<MyClass> cleanList = split.get(Boolean.FALSE);
List<MyClass> removedList = split.get(Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)
cleanList包含tables之后包含的内容removeIf,以及removedList被丢弃的数据(您正在寻找的数据)