开发者社区> 问答> 正文

Java foreach中删除元素? 400 报错

Java foreach中删除元素? 400 报错

自学Java中,

发现在foreach循环中可以调用collection.remove(obj)删除最后一个元素,但是删除其他元素会出错。

谁知道是什么原理?

http://ideone.com/c7OGCS

展开
收起
优选2 2020-06-09 11:21:40 550 0
1 条回答
写回答
取消 提交回答
  • 这个依赖于数据结构实现的吧。foreach就是跑迭代器嘛,如果删除某个元素对迭代器迭代不会产生影响,那就可以删。

    不过如果这是真的,我还是倾向于这算Java的BUG。foreach就应该是只读的!!

    ######

    有错?

    一半用迭代器可以删除当前元素,不知道你是怎么删除其他元素的!

    ######循环中删除,调用iterator的remove才是安全的,foreach里面那不到iterator的引用,还是换成循环iterator的方式吧
    2020-06-09 11:21:57
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载