我在下面有一个 for 循环的传统,我只是想知道每个循环的等效循环是什么。
for (int i = 0; i < words.size(); i++)
{
words.set(i, words.get(i).toUpperCase());
}
此外,对于那些想知道的人来说,words 是一个 String 类型的 arrayList。
最佳答案
for-each 结构不允许您设置元素。这是因为它提供的语法糖隐藏了 Iterator<E>
完全。
for (String word : words)
...
相当于
for (Iterator<String> it = words.iterator(); it.hasNext(); /**/) {
String word = it.next();
...
}
如果 String
这可能有效实例是可变对象,因此您可以在不修改引用的情况下修改内容,但事实并非如此。为了能够用 for-each 做你需要的事情,你需要一个包装类,例如:
List<AtomicReference<String>> words = ...;
for (AtomicReference<String> word : words)
word.set(word.get().toUpperCase());
关于java - 这个传统的 for 循环与 for each 循环的等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41864847/