Mik*_*ike 47 java syntax loops
java for-each循环是否保证如果在列表上调用元素将按顺序显示?在我的测试中似乎确实如此,但我似乎无法在任何文档中明确提到这一点
List<Integer> myList;// [1,2,3,4]
for (Integer i : myList) {
System.out.println(i.intValue());
}
#output
1,2,3,4
Run Code Online (Sandbox Code Playgroud)
hal*_*ave 48
是.foreach循环将按照iterator()
方法提供的顺序遍历列表.请参阅Iterable接口的文档.
如果查看Javadoc for List,您可以看到列表是一个"有序集合",并且该iterator()
方法返回一个迭代器,它以"正确的顺序"迭代.
rjo*_*ton 15
该foreach
循环将使用内置的迭代器Collection
,让你在得到结果的顺序将取决于是否Collection
保持某种的元素顺序.
因此,如果你循环遍历ArrayList
,你将按照它们插入的顺序获取项目(假设你没有继续对ArrayList进行排序).如果你在a上循环HashSet
,所有的赌注都会关闭,因为HashSets不会保持任何排序.
如果您需要保证对集合中元素的订单,请定义Comparator
建立该订单并使用的订单Collections.sort(Collection<T>, Comparator<? super T>)
.
Ale*_*lli 10
是的,Java语言规范确保了这一点
for (Iterator<Whatever> i = c.iterator(); i.hasNext(); )
whatEver(i.next());
Run Code Online (Sandbox Code Playgroud)
相当于
for (Whatever x : c)
whatEver(x);
Run Code Online (Sandbox Code Playgroud)
不允许"订购变更".
归档时间: |
|
查看次数: |
52093 次 |
最近记录: |