首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeAll Java问题

removeAll Java问题
EN

Stack Overflow用户
提问于 2013-03-20 10:28:13
回答 1查看 2.3K关注 0票数 1

我有一个问题,我正在创建一个数组列表,并将多个数组列表添加到这个数组列表中。在程序的某些地方,我需要从一个中心列表中删除这些列表。我一直在使用removeAll();但这会删除一个元素的所有实例。例如,arraylist可以包含(1,2,3,4,5),并且可以将列表(1,2,3)添加到其中。然而,当您删除这个列表时,结果列表现在包含(4,5),而它需要包含(1,2,3,4,5)。如何才能做到这一点?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-20 10:34:57

听起来你应该使用remove而不是removeAll。您可以将其放入循环中,以便从集合中删除所有元素:

代码语言:javascript
复制
ArrayList<Integer> bigList = new ArrayList<Integer>();

// Put multiple smaller lists into big list
bigList.addAll(list1);
bigList.addAll(list2);
bigList.addAll(list3);

// Remove list2's elements from bigList
for (Integer i : list2) {
  bigList.remove(i);
}

更新:

可运行版本:

代码语言:javascript
复制
import java.util.*;

public class RemoveTest {
  public static void main(String[] args) {
    List<Integer> list1 = Arrays.asList(1, 2, 3);
    List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5);
    List<Integer> list3 = Arrays.asList(9);

    ArrayList<Integer> bigList = new ArrayList<Integer>();

    // Put multiple smaller lists into big list
    bigList.addAll(list1);
    bigList.addAll(list2);
    bigList.addAll(list3);

    // Remove list2's elements from bigList
    for (Integer i : list2) {
      bigList.remove(i);
    }

    System.out.println(bigList);
    // Result:
    // [1, 2, 3, 9]
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15514191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档