Yanıtlar:
İlk uzakta: a Listbir a Collection. Ancak bu bir uzmanlık alanıdır Collection.
A Collectionsadece budur: bir öğe koleksiyonu. Bir şeyler ekleyebilir, bir şeyleri kaldırabilir, şeyleri tekrarlayabilir ve orada ne kadar öğe olduğunu sorgulayabilirsiniz.
A Listkendisine malzeme tanımlı bir dizi hakkında bilgi ekler: Sen pozisyonunda eleman alabilirsiniz n , sen pozisyonunda bir unsur ekleyebilir n sen pozisyonunda eleman kaldırabilir, n .
Bunu Collectionyapamazsınız: "Bu koleksiyondaki 5. öğe" tanımlı değil, çünkü tanımlı bir düzen yok.
Başka özel Koleksiyonlar da vardır, örneğin Set, asla aynı öğeyi iki kez içermeyeceği özelliği ekler.
Collectionjava Koleksiyonlar hiyerarşisinin kök arabirimidir. Listsıralı bir Koleksiyonu tanımlayan bir alt arabirimdir, diğer alt arabirimler Queuegenellikle öğeleri işlenmeye hazır olarak saklar (örn. yığın ).
Aşağıdaki şemada farklı java toplama türleri arasındaki ilişki gösterilmektedir:
Mapbir değil Collection.
Java API buna cevap vermek için en iyisidir
Toplamak
Koleksiyon hiyerarşisindeki kök arayüz. Koleksiyon, öğeleri olarak bilinen bir grup nesneyi temsil eder. Bazı koleksiyonlar yinelenen öğelere izin verirken, diğerleri izin vermez. Bazıları sıralı, bazıları sırasız. JDK bu arabirimin doğrudan uygulamalarını sağlamaz: Set ve List gibi daha spesifik alt arabirimlerin uygulamalarını sağlar. Bu arayüz tipik olarak koleksiyonları çevrelemek ve maksimum genelliğin istendiği yerlerde manipüle etmek için kullanılır.
Liste (Koleksiyonu genişletir)
Sıralı bir koleksiyon (sekans olarak da bilinir). Bu arabirimin kullanıcısı, her öğenin listeye nereye eklendiği konusunda kesin denetime sahiptir. Kullanıcı öğelere tamsayı dizinine (listedeki konum) göre erişebilir ve listedeki öğeleri arayabilir.
Kümelerin aksine, listeler genellikle yinelenen öğelere izin verir. Daha resmi olarak, listeler tipik olarak e1 ve e2 eleman çiftlerine izin verir, öyle ki e1.equals (e2) ve boş elemanlara izin veriyorlarsa tipik olarak birden çok boş eleman sağlarlar. Bir kullanıcının, kullanıcı eklemeye çalıştığında çalışma zamanı istisnaları atarak yinelenenleri yasaklayan bir liste uygulamak istemesi düşünülemez, ancak bu kullanımın nadir olmasını bekliyoruz.
Liste ve Küme, Koleksiyonun iki alt sınıfıdır.
Listede, veriler özel sıradadır.
Set'te aynı verileri iki kez içeremez.
Koleksiyonda, yalnızca belirli bir sıraya sahip olmayan verileri depolar ve yinelenen veriler içerebilir.
Koleksiyon , diğer nesnelerin koleksiyonlarını içerebilen Java nesnelerini tanımlayan üst düzey bir arabirimdir. Nasıl erişildikleri, aynı nesnenin birden fazla kopyasının aynı koleksiyonda var olup olmadığı veya siparişin önemli olup olmadığı konusunda çok spesifik değil. Liste özellikle sıralı nesne koleksiyonudur. Listeye belirli bir sırada nesne koyarsanız, bu sırada kalırlar.
Ve bu iki arayüzün nerede kullanılacağına karar vermek, kullandığınız somut uygulamanın ne olduğuna karar vermekten çok daha az önemlidir. Bunun, programınızın zaman ve alan performansı üzerinde etkileri olacaktır. Örneğin, bir liste istiyorsanız, her biri uygulama için sonuçları olacak bir ArrayList veya LinkedList kullanabilirsiniz. Diğer toplama türleri (örneğin Setler) için benzer hususlar geçerlidir.
Koleksiyon , List'in Süper arayüzüdür, bu nedenle her Java listesi de koleksiyonun bir örneğidir. Koleksiyonlar yalnızca ardışık olarak (ve belirli bir sırada değil) yinelenebilirken, Liste get(int index)yöntem yoluyla belirli bir konumdaki bir öğeye erişime izin verir .