数组列表检索顺序

Vic*_*tor 15 java arraylist

我有一个java ArrayList,我添加了5个对象.

如果我遍历列表并将其打印出来,则迭代列表并再次打印出来.

这两种情况下的检索顺序是否相同?(我知道它可能与插入顺序不同)

Oli*_*rth 24

是的,假设您没有修改其间的列表.来自http://docs.oracle.com/javase/6/docs/api/java/util/List.html:

迭代器

Iterator<E> iterator()

以适当的顺序返回此列表中元素的迭代器.

或许有点模糊,但在该页面的其他部分,这个术语被定义为:

正确的顺序(从第一个到最后一个元素)

  • @TheNail - 好吧,`List`的文档在开头就说'List`是"有序集合(也称为_sequence_)". (4认同)

Mik*_*uel 11

(我知道它可能与插入顺序不同)

不,不会.合同List要求add订单与迭代顺序相同,因为add在最后插入,并iterator产生一个迭代器,按顺序从头到尾迭代.

Set不需要这个,所以你可能会产生混淆的合同SetList有关的迭代顺序.

来自Javadoc:

Iterator<E> iterator()

以适当的顺序返回此列表中元素的迭代器.


tru*_*ity 6

它是在List保持订单的界面规范中.

这是Set不保留秩序的类.