开发者社区> 问答> 正文

迭代元素的时候用集合的remove()方法不会报错 ?报错

//为什么删除倒数第二个元素不会报错,删除其他元素会报错
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
c.add("six");
System.out.println("原先的集合:"+c);
Iterator it = c.iterator();
while (it.hasNext()) {
Object o = it.next();
String str = (String)o;

            if ("five".equals(str)) {//为什么删除倒数第二个元素不会报错,删除其他元素会报错
                System.out.println("要删除的元素:"+str);
                c.remove(str);
            }
        }
        System.out.println("删除后的集合:"+c);

    }

展开
收起
爱吃鱼的程序员 2020-06-23 21:02:29 401 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    可以把c.remove(str);改成it.remove();
    至于错误原因可以参考http://www.cnblogs.com/dolphin0520/p/3933551.html

    2020-06-23 21:02:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载