Java 如何删除arrayList中的多个值?

Java 如何删除arrayList中的多个值?,java,arraylist,collections,removeall,Java,Arraylist,Collections,Removeall,我们用于单个删除的删除方法,但我想删除数组列表中的多个值 ArrayList<Integer> al=new ArrayList<Integer>(); al.add(7); al.add(8); al.add(9); al.add(13); al.add(22); al.add(55); al.add(88); //adding values for(int i=0;i<100;i++){

我们用于单个删除的删除方法,但我想删除数组列表中的多个值

ArrayList<Integer> al=new ArrayList<Integer>();
    al.add(7);
    al.add(8);
    al.add(9);
    al.add(13);
    al.add(22);
    al.add(55);
    al.add(88);
    //adding values
    for(int i=0;i<100;i++){
        al.add(i);
    }
我添加了重复的元素,我想获取重复的元素并将其从arraylist中删除

例如:


像这样的输出:1,2,3,4,5,6,10,11,12,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,74,75,76,77,78,79,50,51,52,84,84,84,84,89,89,89,84,89,84,89,93、94、95、96、97、98、99、100利用流来获得不同的值。不过,我仍然相信,这些场景非常适合这种情况

    ArrayList<Integer> al=new ArrayList<Integer>();
        al.add(7);
        al.add(8);
        al.add(9);
        al.add(13);
        al.add(22);
        al.add(55);
        al.add(88);

    List<Integer> list = al.stream().distinct().collect(Collectors.toList());
System.out.println(list);

利用流来获得不同的值。不过,我仍然相信,这些场景非常适合这种情况

    ArrayList<Integer> al=new ArrayList<Integer>();
        al.add(7);
        al.add(8);
        al.add(9);
        al.add(13);
        al.add(22);
        al.add(55);
        al.add(88);

    List<Integer> list = al.stream().distinct().collect(Collectors.toList());
System.out.println(list);
不会影响原始列表的副本,这似乎是您所要求的。如果您不关心用于第二个集合的结构,您可以将其作为一个集合保留,而不创建另一个ArrayList

不会影响原始列表的副本,这似乎是您所要求的。如果您不关心用于第二个集合的结构,可以将其作为一个集合保留,而不创建另一个ArrayList。

使用两个ArrayList,其中一个包含要删除和使用的对象:

从此列表中删除指定集合中包含的所有元素

使用两个ArrayList,其中一个包含要删除和使用的对象:

从此列表中删除指定集合中包含的所有元素



如果你不想要重复的元素,为什么不使用集合呢?是的,但我想要重复的元素。我的输出中没有这些元素你为什么要这样做?i、 e.更大的图景是什么?你是否总是知道你想要的范围?i、 e.1到100A可能是@shanbhagsv的副本我没有得到答案,所以我在这里问如果你不想要副本,为什么不使用集合?是的,但我想要重复的元素。我的输出中没有这些元素你为什么要这样做?i、 e.更大的图景是什么?你是否总是知道你想要的范围?i、 e.1到100可能是@shanbhagsv的复制品我没有得到答案,所以我问这里你能解释一下吗briefly@Venkatesh添加了更多详细信息,一个列表包含要删除的对象,完整列表使用removeAll方法@user7294900删除所有对象Thankyou@venkat如果答案是最有用的,你可以接受。你能解释一下吗briefly@Venkatesh添加了更多详细信息,一个列表包含要删除的对象,完整列表使用removeAll方法@user7294900删除所有对象Thankyou@venkat如果答案是最有用的,你可以接受。请参见我要获取重复元素并将其从arraylist中删除->我很困惑,您要求此处删除重复元素,如果给定数字存在多个值,是否要同时删除这两个值?我要获取重复元素并将其从arraylist中删除->我很困惑,您要求此处删除重复元素,如果给定数字存在多个值,是否要同时删除这两个值?
ArrayList<Integer> toRemove=new ArrayList<>();//use diamond operator to reduce verbosity 
toRemove.add(7);
toRemove.add(8);
toRemove.add(9);
toRemove.add(13);
toRemove.add(22);
toRemove.add(55);
toRemove.add(88);
ArrayList<Integer> al=new ArrayList<>();
for(int i=0;i<100;i++){
    al.add(i);
}
al.removeAll(toRemove);
ArrayList<Integer> al=new ArrayList<Integer>();     
ArrayList<Integer> remove=new ArrayList<Integer>();   
al.add(7);   
al.add(8);   
al.add(9);   
al.add(13);     
al.add(22);   
al.add(55);  
al.add(88);  
remove.add(7);   
remove.add(8);   
remove.add(9);   
remove.add(13);   
remove.add(22);   
remove.add(55);   
remove.add(88);   
//adding values   
for(int i=0;i<100;i++){   
    al.add(i);   
}   
al.removeAll(remove);  
System.out.println(al);