小编dob*_*oje的帖子

奇怪的Java并发修改异常示例

如果我们这样写,就会出现并发修改异常:

public static void main(String... args) {
    List<String> listOfBooks = new ArrayList<>();
    listOfBooks.add("Programming Pearls");
    listOfBooks.add("Clean Code");
    listOfBooks.add("Effective Java");
    listOfBooks.add("Code Complete");

    System.err.println("Before deleting : " + listOfBooks);
    for (String book : listOfBooks) {
        if (book.contains("Code")) {
            listOfBooks.remove(book);
        }
    }
    System.err.println("After deleting : " + listOfBooks);
}
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我们这样写,没有并发修改异常! 请注意,代码完全相同,除了用于比较的字符串,在第一个示例中它是一个代码,在第二个示例中它是一个Java

public static void main(String... args) {
    List<String> listOfBooks = new ArrayList<>();
    listOfBooks.add("Programming Pearls");
    listOfBooks.add("Clean Code");
    listOfBooks.add("Effective Java");
    listOfBooks.add("Code Complete");

    System.err.println("Before deleting : " + listOfBooks);
    for (String book : …
Run Code Online (Sandbox Code Playgroud)

java exception

8
推荐指数
2
解决办法
405
查看次数

标签 统计

exception ×1

java ×1