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