ArrayList插入和检索顺序
假设我在ArrayList
插入5个string。 从ArrayList
插入和检索的顺序是相同的吗?
检查下面的代码并运行它:
public class ListExample { public static void main(String[] args) { List<String> myList = new ArrayList<String>(); myList.add("one"); myList.add("two"); myList.add("three"); myList.add("four"); myList.add("five"); System.out.println("Inserted in 'order': "); printList(myList); System.out.println("\n"); System.out.println("Inserted out of 'order': "); // Clear the list myList.clear(); myList.add("four"); myList.add("five"); myList.add("one"); myList.add("two"); myList.add("three"); printList(myList); } private static void printList(List<String> myList) { for (String string : myList) { System.out.println(string); } } }
生成以下输出:
Inserted in 'order': one two three four five Inserted out of 'order': four five one two three
有关详细信息,请参阅文档: List (Java Platform SE7)
是的 。 ArrayList是一个顺序列表 。 所以,插入和检索顺序是一样的。
如果在检索过程中添加元素,订单将不会保持不变。
如果你总是添加到最后,那么每个元素将被添加到最后,并保持这种状态直到你改变它。
如果你总是在开始时插入,那么每个元素将以相反的顺序出现。
如果你在中间插入他们,订单将是别的东西。
是的,它永远是一样的。 从文档
将指定的元素附加到此列表的末尾。 参数:要附加到此列表的e元素返回:true(由Collection.add(java.lang.Object)指定)
ArrayList的add()
实现
public boolean More ...add(E e) { ensureCapacity(size + 1); // Increments modCount!! elementData[size++] = e; return true; }
是的,它保持不变。 但为什么不轻易testing呢? 做一个ArrayList,填充它,然后检索元素!