【发布时间】:2016-05-02 20:08:42
【问题描述】:
Java 的 foreach 循环是否从第一个对象开始并以线性方式工作到结束?例如
String[] names = new String[] {"Zoe", "Bob", "Charlie", "Alex"};
for(String name : names) {
//do stuff...
}
字符串“Zoe”是否总是首先处理,然后是“Bob”等?没有排序发生?我自己测试过,但没有找到任何东西,但我需要保证,但在文档中找不到任何东西。
【问题讨论】:
-
简短回答:是的,对于数组它确实如此。 (有点)更长的答案:取决于您迭代的对象
-
@ParkerHalo
Strings 怎么样? -
问题:为什么要通过只使用循环来应用排序(或任何其他修改)(无论您是直接使用 foreach 还是迭代器)?
-
@Celeritas 也许我的评论具有误导性:对于所有数组(和数组列表),顺序保持不变。对于其他列表/集合,这可能不是真的!
-
@ParkerHalo
For other lists ... this might not be true!你说得对,它可能不是真的,但是列表的定义包含一个指定/确定的顺序,所以如果它不是真的某些列表我不会再称它为列表了。 :)