小编Dmi*_*riy的帖子

为什么“foreach”循环会产生异常?

我使用 Stack 和 StringBuilder 类编写了用于字符串反转的代码。我注意到这段代码中的 'foreach' 循环会生成 java.util.ConcurrentModificationException,但通常的 'for' 循环不会。所以为什么?

public static String reverse(String str)
{
    Stack<Character> stack = new Stack<>();
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < str.length(); i++)
        stack.push(str.toCharArray()[i]);
    }


    for (Character c: stack) // generates an exception
    {
        sb.append(stack.pop());
    }

    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

我期望一个反转的字符串,但发生了 ConcurrentModificationException。

java

2
推荐指数
1
解决办法
151
查看次数

标签 统计

java ×1