删除ArrayList中的每个元素

时间:2017-11-22 07:48:57

标签: java arraylist

我目前正在学习Java,我只是对我在一分钟前写过的代码感到好奇,它有效,但我想知道是否有更好的替代方案(不是' "使用clear方法")。

    public static void main(String[] args) {

    ArrayList al = new ArrayList();

    al.add("A");
    al.add("B");
    al.add(5);

    System.out.println(al.size());

    Iterator i = al.iterator();

    while (i.hasNext()) {
        Object next = i.next();
        System.out.println("Removing " + next.toString() + "...");
        al.remove(next);
        i = al.iterator();
    }

    System.out.println(al.size());
}

特别是,因为我真的不知道ArrayList中的特定位置可以包含什么(它们包含各种对象),所以我使用了一个通用的"对象"变量。我不知道这是否可以接受。

我知道有清除ArrayList的方法,我只想尝试理解ArrayLists的工作原理,谢谢。

2 个答案:

答案 0 :(得分:2)

  

但我想知道是否有更好的替代方案

是。

  

因为我真的不知道在某个特定位置会发生什么   ArrayList(它们包含各种对象。

  1. #!/bin/bash complete -W 'word1 word2 word3 aa bb' ./test.bash echo "the param is: $1" 设为通用:它只允许您添加一些特定类型的List<T>

  2. 替换Object ArrayList al = new ArrayList();

答案 1 :(得分:2)

在删除之前,您不需要获取每个元素。您只需通过它的索引删除元素:

ArrayList al = new ArrayList();

// ... add elements skipped...

// now clear it 
int size = al.size();
for (int index = size-1; index >= 0; index--) {
    al.remove(index);
}