Java 在将相同的元素添加到新的ArrayList之后,是否有任何方法可以从给定的ArrayList中删除某些元素?

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

例如,有一个元素列表。 我们在此列表中调用streamMethod。现在我们想通过一个条件从列表中提取某个元素,并将其添加到一个新列表中

示例:

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;
}

流媒体播放时无法删除,但可以使用列表。删除(对象)您到底想做什么?你能展示一些输入和输出的例子吗?