如何从List中删除元素

从List中删除元素,不能通过索引的方式遍历后删除,只能使用迭代器。

错误的实现

错误的实现方法
public class Demo {
    public static void main(String... args) {
        List<String> data = new ArrayList<String>();
        data.add("abc");
        data.add("bcd");
        data.add("cde");
        data.add("def");
        data.add("efg");
        data.add("fgk");
        for (int i = 0, len = data.size(); i < len; i ++) {
            String item = data.get(i);
            if ("cde".equals(item)) {
                data.remove(i);
            }
        }
    }
}

错误的方法在删除的时候,会抛出一个异常。

正确的实现

正确是实现方法
public class Demo {
    public static void main(String... args) {
        List<String> data = new ArrayList<String>();
        data.add("abc");
        data.add("bcd");
        data.add("cde");
        data.add("def");
        data.add("efg");
        data.add("fgk");
        Iterator<String> it = data.iterator();
        while (it.hasNext()) {
            String item = it.next();
            if ("cde".equals(item)) {
                it.remove();
            }
        }
    }
}
posted @ 2017-01-23 15:12  编程小白菜  阅读(373)  评论(0编辑  收藏  举报