Java 在将相同的元素添加到新的ArrayList之后,是否有任何方法可以从给定的ArrayList中删除某些元素?
例如,有一个元素列表。 我们在此列表中调用streamMethod。现在我们想通过一个条件从列表中提取某个元素,并将其添加到一个新列表中 示例:Java 在将相同的元素添加到新的ArrayList之后,是否有任何方法可以从给定的ArrayList中删除某些元素?,java,arraylist,java-8,java-stream,Java,Arraylist,Java 8,Java Stream,例如,有一个元素列表。 我们在此列表中调用streamMethod。现在我们想通过一个条件从列表中提取某个元素,并将其添加到一个新列表中 示例: List<Integer> intList = new ArrayList<>(); for (int i = 0; i < 100; i++) { intList.add(i); } public static List<Integer> getIntFive(List<Intege
List<Integer> intList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
intList.add(i);
}
public static List<Integer> getIntFive(List<Integer> list) {
return list.stream().filter(i -> i.equals(5)).collect(Collectors.toList());
}
public static List<Integer> getIntEight(List<Integer> list) {
return list.stream().filter(i -> i.equals(8)).collect(Collectors.toList());
}
List intList=new ArrayList();
对于(int i=0;i<100;i++){
添加(i);
}
公共静态列表getIntFive(列表列表){
return list.stream().filter(i->i.equals(5)).collect(Collectors.toList());
}
公共静态列表GetInteght(列表列表){
return list.stream().filter(i->i.equals(8)).collect(Collectors.toList());
}
有没有办法从原始列表中删除添加到新列表中的项目?一个是否可以在第一个流之后链接另一个流,从而影响原始列表的属性 流式传输时不能删除,但迭代两次没有坏处,例如:
List<Integer> initial = new ArrayList<>(List.of(1, 2, 3, 4, 5));
List<Integer> result = new ArrayList<>();
initial.forEach(x -> {
if (x > 3) {
result.add(x);
}
});
// or simply : initial.removeAll(result);
initial.removeIf(result::contains);
System.out.println(initial); // 1,2,3
System.out.println(result); // 4,5
List initial=newarraylist(List.of(1,2,3,4,5));
列表结果=新建ArrayList();
首字母。forEach(x->{
如果(x>3){
结果:添加(x);
}
});
//或者简单地说:initial.removeAll(result);
initial.removeIf(结果::contains);
系统输出打印项次(首字母);//1,2,3
System.out.println(结果);//4,5
更接近您当前的实现,执行该操作的另一种方法是:
public static List<Integer> getIntEight(List<Integer> list) {
List<Integer> res = list.stream()
.filter(i -> i.equals(8))
.collect(Collectors.toList());
list.removeAll(res);
return res;
}
公共静态列表getInteght(列表列表){
List res=List.stream()
.filter(i->i.equals(8))
.collect(Collectors.toList());
列表。移除所有(res);
返回res;
}
流媒体播放时无法删除,但可以使用列表。删除(对象)您到底想做什么?你能展示一些输入和输出的例子吗?