ArrayList ekleme ve alma sırası


90

Bir ArrayList. Ekleme ve geri alma sırası ArrayListaynı mı olacak?


90
Bir kez denemek bir şeydir. Her seferinde aynı olacağından emin olmak başka bir şey.
Suragch

Yanıtlar:


85

Evet, ArrayList sıralı bir koleksiyondur ve ekleme sırasını korur.

Aşağıdaki kodu kontrol edin ve çalıştırın:

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);
        }
    }
}

Aşağıdaki çıktıyı üretir:

Inserted in 'order': 
one
two
three
four
five


Inserted out of 'order': 
four
five
one
two
three

Ayrıntılı bilgi için lütfen belgelere bakın: List (Java Platform SE7)


9
Sıralamayı açıkça açıklayan Java belgesine bir bağlantı eklemek için +1.
Ogre Mezmuru33

21
Örnek çıktı faydalı olacaktır
nilesh

1
Harika bir örnek. Bunun için +1.
Pawan Tiwari

Bir örnek bir kanıt değildir, ancak bağlantı
yoni

124

Evet . ArrayList, sıralı bir listedir . Yani, ekleme ve alma sırası aynıdır.

Alma sırasında öğe eklerseniz , sıra aynı kalmayacaktır.


1
OP sonunda "ekler" ise, ekleme olarak da adlandırılır.
Peter Lawrey

2
ikinci ifade, bir evre tarafından alınma süresi sırasında başka bir evrenin yeni bir eleman eklemek için müdahale etmesi anlamına gelir. o zaman sıra aynı
kalmaz

38

Her zaman sonuna eklerseniz, her öğe sona eklenir ve siz değiştirene kadar bu şekilde kalır.

Her zaman başlangıçta eklerseniz, her öğe eklediğiniz sıranın tersi şekilde görünecektir.

Ortaya eklerseniz, sıra başka bir şey olacaktır.


12

Evet, hep aynı kalacak. Gönderen dokümantasyon

Belirtilen öğeyi bu listenin sonuna ekler. Parametreler: Bu listeye eklenecek e öğesi Döndürür: true (Collection.add (java.lang.Object) tarafından belirtildiği gibi)

ArrayList add()uygulaması

public boolean More ...add(E e) {
    ensureCapacity(size + 1);  // Increments modCount!!
    elementData[size++] = e;
    return true;
}

-1

Evet aynı kalır. ama neden kolayca test etmiyorsunuz? Bir ArrayList oluşturun, doldurun ve ardından öğeleri alın!


20
Yine de bu kanıt değil.
YoTengoUnLCD

1
Aynı sıra, testin olası sonuçlarından yalnızca biridir. Uygulama kara kutu ise, aynı sıra özel durum olabilir. Örnek sıralı listedir. Sıralı listeye uygun sırayla eleman eklerseniz, sıralı sırayla (bu sadece belirli bir durumdur) alabilirsiniz, ancak bunları rastgele sırayla eklerseniz sıralı hale getirebilirsiniz. ArrayList'in gerçeklenimi kontrol etmeden test edilmesi sadece "büyük olasılıkla sıra aynıdır" şeklinde ifade edecektir.
simar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.