Java ile List ile Set Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 2 Nisan 2021
Güncelleme Tarihi: 17 Mayıs Ayı 2024
Anonim
Java Dersleri #87 - OOP - ArrayList Kullanımı (Collection)
Video: Java Dersleri #87 - OOP - ArrayList Kullanımı (Collection)

İçerik


Liste ve Arabirim arabirimi Koleksiyon'u genişletir. İkisi de elementlerin veya nesnelerin koleksiyonunu korur. Ancak, onları birbirinden ayıran en büyük fark List'tir, sıralı elemanların bir koleksiyonudur, elemanlara bir indeks değişkeni yardımıyla eklenir veya çıkarılır ya da erişilir. Öte yandan, Set, koleksiyonun içinde yinelenen öğelere izin vermediği bir nesne koleksiyonudur. Aşağıda gösterilen karşılaştırma çizelgesinin yardımıyla Liste ve Set arayüzleri arasında biraz daha farklılıklar çalışalım.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelListe Ayarlamak
TemelListe, bir listede depolanan öğelerin sırasını korur.Set özellikle ekleme sırasını korumaz, ancak Linked HashSet ekleme sırasını korur.
kopyaListede yinelenen öğeler bulunabilir.Yinelenen öğeleri eklemeye çalışırsanız, add () yöntemi false değerini döndürür.
YöntemlerKoleksiyonda tanımlanan yöntemlere ek olarak, Liste kendi yöntemlerinden bazılarını tanımlar.Set, herhangi bir ek yöntem tanımlamaz.
uygulama Liste ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack tarafından uygulanır.Set, HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet tarafından uygulanır.


Listenin tanımı

Liste arayüzü Koleksiyon arayüzünü genişletir. Liste, düzenlenmiş bir öğeler veya nesneler koleksiyonudur. Küme'den farklı olarak Liste, yinelenen öğeler içerebilir. Koleksiyon Listesi'nde tanımlanan yöntemlere ek olarak, index-tabanlı get () ve set () gibi kendi yöntemlerini de tanımlar. Belirtilen öğeyi yöntem argümanında belirtilen dizine ekleyen veya kaldıran Koleksiyondan devralınan add () ve remove () yöntemleri. Liste, listeye öğeler eklediğimizde boyutu artan bir dizidir.

Liste, bir listedeki dizinler aralığında çalışacak hiçbir yöntem tanımlamaz. Belirtilen aralığın orijinal listesinden bir alt liste döndüren bir sublist () yöntemini tanımlar. Alt listede yaptığınız değişiklikler de orijinal listede görünür. Liste arayüzü ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack tarafından uygulanır.


Setin tanımı

Set arayüzü Koleksiyon arayüzünü genişletir. Set interface, içinde herhangi bir yinelenen nesne olmayan bir koleksiyon veya nesne grubudur. Bu, iki referansın bir nesneyi referanslayamayacağı veya bir referansın iki nesneye atıfta bulunamayacağı veya Null'a atıfta bulunan iki referans olamayacağı anlamına gelir. Elemanın sırası veya sırası önemli değildir Küme, ancak sıralı takımı yasakladığı anlamına gelmez.

Set arabirimi, Koleksiyonda tanımlanan yönteme ek olarak herhangi bir yöntem tanımlamaz. Bunun yerine, koleksiyondaki yinelenen herhangi bir nesneyi eklemek için toplama add () ve addall () yöntemlerini kısıtlar. Koleksiyondaki add () yöntemini kullanarak bir koleksiyonda yinelenen herhangi bir nesne eklemeye çalışırsanız, false değerini döndürür. Aksi takdirde, doğru döner. Set arayüzü HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet tarafından gerçekleştirilir.

  1. Bir koleksiyondaki öğelerin / nesnelerin sırası List'te tutulurken, Set öğelerin sırasını korumaz, ancak LinkedHashSet'in ekleme sırasını korumasının bir istisnası vardır.
  2. Liste, diziniyle herhangi bir öğeyi tanımladığı için yinelenen öğelere sahip olabilir, ancak Set, koleksiyondaki herhangi bir nesneyi tanımlamak için herhangi bir dizin türüne sahip olmadığı için yinelenen öğelere izin vermez.
  3. Liste, Koleksiyon'da tanımlanan yöntemlere ek olarak bazı yöntemleri kendi başına tanımlar. Öte yandan, Set kendi yöntemlerini tanımlamaz, ancak yinelenen öğeler eklemek için Toplama yöntemlerini kısıtlar.
  4. Liste ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack arabirimleri tarafından uygulanır. Öte yandan, Set HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet arayüzleri tarafından uygulanır.

Sonuç:

Liste ve Ayarlama arayüzünün kullanımı gereksinime bağlıdır. Nesnelerin / elemanların sırası önemliyse, List arabirimini kullanmanız gerekir. Koleksiyonunuzda yinelenen öğeler istemiyorsanız, Set arabirimini kullanmanız gerekir.