日期:2014-05-20  浏览次数:20801 次

List中remove问题
Java code


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestList {

    /**
     * @param args
     */
    public static void main(String[] args) {
        List l = new ArrayList();
        l.add("aaa");
        l.add("bbb");
        l.add("aaa");
        l.add("aaa");
        l.add("ccc");

        int index = 0;
        for (int i = 0; i < l.size(); i++) {
            index++;
            System.out.println(index + "__" + l.get(i));
            if (l.get(i).equals("aaa")) {
                System.out.println(l.get(i) + "已删除");
                l.remove(i);
            }
        }
        System.out.println(l);

    }
}




上面代码中 用循环删除为aaa的项目。
循环完成后 还剩最后一个aaa没删除 这是为啥。

------解决方案--------------------
for (int i = l.size()-1; i >-1 ; i--) {