我目前正在学习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的工作原理,谢谢。
答案 0 :(得分:2)
但我想知道是否有更好的替代方案
是。
因为我真的不知道在某个特定位置会发生什么 ArrayList(它们包含各种对象。
将#!/bin/bash
complete -W 'word1 word2 word3 aa bb' ./test.bash
echo "the param is: $1"
设为通用:它只允许您添加一些特定类型的List<T>
。
替换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);
}