Java 如何逐个删除ArrayList中的所有元素? publicstaticvoidmain(字符串[]args){ ArrayList name=新的ArrayList(); 名称。添加(“名称1”); 名称。添加(“名称2”); 名称。添加(“名称3”); 对于(int i=0;i

Java 如何逐个删除ArrayList中的所有元素? publicstaticvoidmain(字符串[]args){ ArrayList name=新的ArrayList(); 名称。添加(“名称1”); 名称。添加(“名称2”); 名称。添加(“名称3”); 对于(int i=0;i,java,for-loop,arraylist,Java,For Loop,Arraylist,如果我这样做的话,ArrayList中会保留1个元素。如何使用for循环将它们全部删除?ArrayList name=new ArrayList(); public static void main(String[] args) { ArrayList<String> names = new ArrayList<String>(); names.add("Name1"); names.add("Name2")

如果我这样做的话,
ArrayList
中会保留1个元素。如何使用
for
循环将它们全部删除?

ArrayList name=new ArrayList();
public static void main(String[] args) {
    ArrayList<String> names = new ArrayList<String>();
    names.add("Name1");
    names.add("Name2");
    names.add("Name3");

    for (int i = 0; i < names.size(); i++) {
        System.out.println(names.get(i));
        names.remove(i);
    }

    System.out.println(names);
}
名称。添加(“名称1”); 名称。添加(“名称2”); 名称。添加(“名称3”); for(Iterator it=names.Iterator();it.hasNext();){ it.next(); it.remove(); } System.out.println(名称);
再想想你的循环,你每次都在增加
i
,但是你删除了0,1,…,n索引。当删除对象时,列表的大小会越来越小,直到删除了一半(地板,不是全部,而是一个)元素。前面的注释的解决方案对此不起作用,但是在循环中用remove(0)替换remove(i)将非常有帮助,如果您说明为什么它必须是for循环。您是否只需要清空此列表;在这种情况下,您应该使用ArrayList.clear,或者希望在遍历列表时删除元素;在哪种情况下,使用迭代器是最好的方法?而且,只使用代码的答案是非常不鼓励的。你应该描述问题并解释如何解决它。我想这就是他想要的“我如何使用for循环删除它们?”@JohnKugelman“我如何使用for循环删除它们?”-这就是问题所在,是吗?
ArrayList<String> names = new ArrayList<String>();
names.add("Name1");
names.add("Name2");
names.add("Name3");

for (Iterator<String> it = names.iterator(); it.hasNext();) {
    it.next();
    it.remove();
}
System.out.println(names);