2018-10-18 java.util.ConcurrentModificationException

参考资料
java.util.ConcurrentModificationException详解
Java ConcurrentModificationException异常原因和解决方法

报错

Exception in thread "main" java.util.ConcurrentModificationException
    at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:937)
    at java.base/java.util.ArrayList$Itr.next(ArrayList.java:891)
    at Book.RemoveAuthor(Part1_1.java:38)
    at Part1_1.main(Part1_1.java:11)

代码

public class Part1_1{
  public static void main(String[] args) {
    Author author1 = new Author("Richard Hartley", "123456@gamil.com", 'M');
    Book aBook = new Book("Multiple View Geometry",author1,100,10);
    Author author2 = new Author("Peter", "456789@gamil.com", 'F');
    aBook.AddAuthor(author2);
    System.out.print(aBook.toString());
    System.out.print("\n");
    aBook.RemoveAuthor("Peter");
    System.out.print(aBook.toString());
  }
}
  public void RemoveAuthor(String name){
      for(Author author:authors){
        if(author.getName() == name){
          authors.remove(author);
        }
      }
  }

由于自身水平有限,对于参考资料的讲解,理解的并不透彻,资料中提供的解决方案看起来并不那么友好。笔者基于自己的理解,尝试换一种迭代方式试试。

代码

  public void RemoveAuthor(String name){
      for(int i = 0; i< authors.size(); i++){
        if(authors.get(i).getName() == name){
          authors.remove(authors.get(i));
        }
      }
  }

结果

Book[ name = Multiple View Geometry,[Author[ name = Richard Hartley, email = 123456@gamil.com, gender = M], Author[ name = Peter, email = 456789@gamil.com, gender = F]], price = 100.0, qty = 10]

Book[ name = Multiple View Geometry,[Author[ name = Richard Hartley, email = 123456@gamil.com, gender = M]], price = 100.0, qty = 10]

刘月林
写于浙江宁波
20181018

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,300评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,086评论 2 59
  • 数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据提取并上交给网络层。在因特网中,网络层协...
    九霄123阅读 830评论 0 0
  • 年少时的我们心高气傲,单纯无畏,怀揣梦想,憧憬未来,但是随着一天天的长大,经历生活的打磨,社会的渲染,你是否还记得...
    East东子阅读 1,506评论 11 14

友情链接更多精彩内容