我想详细了解Java中的增强型for循环是如何工作的(假设我已经了解了该循环的基本用法和一般工作原理)。
给定以下代码:
String[] a = {"dog", "cat", "turtle"};
for (String s : a) {
out.println("String: " + s);
s = in.readLine("New String? ");
}
它实际上并没有修改原始列表'a'。
为什么?内存管理是如何工作的?'s'不是对'a[i]'相同的内存单元的引用吗?
我在Oracle文档中阅读到增强型for循环无法用于从原始数组中删除元素,这是有道理的。那么修改值是否也是如此呢?
提前致谢。
s
是一个变量,其中包含对容器元素的引用。 - Roman C