如何从Java ArrayList中删除顺序元素?

ace*_*nap 6 java arraylist

我是一个相对较新的Java程序员,我从diffList中删除了多个元素.理想情况下,我想做这样的事情:

ArrayList ar1 = new ArrayList();
ar1.add(...)
ar1.add(...)
ar1.add(...)
ar1.add(...)

for (int i = 0; i < 2; i++){
     ar1.remove(i);
}
Run Code Online (Sandbox Code Playgroud)

我认为迭代器可能会有所帮助,但我找不到一个与我正在尝试的内容相近的示例.任何帮助,将不胜感激.谢谢.

Col*_*inD 21

这是你想要做的:

ar1.subList(0, 2).clear();
Run Code Online (Sandbox Code Playgroud)

这将创建列表的前2个元素的子列表视图,然后清除该子列表,将其从原始列表中删除.该subList方法主要用于此类事务......在列表的特定范围内执行操作.

  • 问题是"删除多个元素".此解决方案仅适用于"删除多个顺序元素",这是给出的示例. (2认同)

Nik*_*bak 5

你当然可以这样做

    ArrayList ar1 = new ArrayList();
    ar1.add("a");
    ar1.add("b");
    ar1.add("c");
    ar1.add("d");

    for (int i = 0; i < 2; i++) {
        ar1.remove(i);
    }
    System.out.println(ar1);
Run Code Online (Sandbox Code Playgroud)

只需注意在删除第一个元素后,其他元素就会移动.因此,打电话

ar1.remove(0);
ar1.remove(1);
Run Code Online (Sandbox Code Playgroud)

将有效地从列表中删除第一个和第三个元素.这将删除前两个元素,但:

ar1.remove(0);
ar1.remove(0);
Run Code Online (Sandbox Code Playgroud)