ArrayList插入和检索顺序

时间:2012-07-04 15:04:50

标签: java collections

假设我在ArrayList中插入5个字符串。从ArrayList插入和检索的顺序是否相同?

5 个答案:

答案 0 :(得分:110)

即可。 ArrayList是顺序列表。因此,插入和检索顺序是相同的。

如果您在检索期间添加元素 ,则订单将保持不变。

答案 1 :(得分:62)

检查下面的代码并运行它:

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)

答案 2 :(得分:38)

如果你总是添加到最后,那么每个元素都会被添加到最后并保持这种状态直到你改变它。

如果您始终在开头插入,则每个元素将按照您添加它们的相反顺序显示。

如果您将它们插入中间,则订单将是其他内容。

答案 3 :(得分:8)

是的,它总是一样的。来自documentation

  

将指定的元素追加到此列表的末尾。参数: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;
}

答案 4 :(得分:-1)

是的,它仍然是一样的。 但为什么不轻易测试呢?创建一个ArrayList,填充它然后检索元素!