Set ve List arasındaki fark

Dizi Listesi ve Bağlantılı Liste arasındaki fark

Gerçek farklılıklara girmeden önce, gerçekte ne olduklarını öğrenelim?

Set Nedir?

Matematikte Set kavramına rastladık ve burada Set aşağı yukarı aynı anlama geliyor. Evet, bir elemanlar topluluğudur ve çoğu durumda benzer elemanlardan oluşan bir koleksiyondur. Bu öğeleri bir Set'e eklemeyi deneyebilir ve gerçekte nasıl depolandığını anlamak için yazdırmayı deneyebilirsiniz.

Bir Kümeye Giriş: 20, 50, 10, 30.

Aslında bir Set içinde saklanır 10, 20, 30, 50.

Öğeler burada sıralanır ve ekleme sırasında saklanmaz. Bu, saklanmadan önce her zaman öğeleri sıraladığı Set'in özelliklerinden biridir ve elbette bunun istisnaları vardır ve bunlardan biri, öğelerin ekleme sırasını koruduğu için LinkedhashSet'dir..

Bilgisayar terimleriyle, Set Yöntemler ve Kalıtım gibi birkaç ek özellik içerir. Yöntemler aynı işlevler gibidir ve öğeler kümesi ekleme, kaldırma veya yineleme gibi belirli görevleri yerine getirir. Çoğumuz Kalıtım terimini iyi tanıyoruz ve burada da aynı anlama geliyor. Evet, Set Metodu ile kullanılabilmesi için bir Yöntemi Koleksiyonundan devralabiliriz. Yine yeni bir terimden, yani Set Arayüzünden bahsediyoruz ve bu, Yöntemler de dahil olmak üzere tüm eleman setinden başka bir şey değil..

Nasıl uygulanır??

Sadece daha iyi bir anlayış için, bir Sözdizimi ile bir Kümeyi temsil ettik. Aşağıdaki sözdiziminden HashSet ve TreeSet gibi farklı Set türlerini tanımlayabilirsiniz.

içe aktar java.util. *;

genel sınıf Setexample

public static void main (Dize bağımsız değişkenleri [])

int count [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set = yeni HashSet ();

Deneyin

için (int i = 0; i < 5; i++)

set.add ([i] sayısı);

System.out.println (grubu);

TreeSet sortSeteg = yeni TreeSet (set);

System.out.println (“Burada sıralanan çıktı var:”);

System.out.println (sortedSeteg);

System.out.println (“İlk öğeye bakın:“ + (Tamsayı) sortSet.first ());

System.out.println (“Son öğeye bakın:“ + (Tamsayı) sortSet.last ());

catch (İstisna e)

Yukarıdaki kodun çıktısı aşağıdaki gibidir.

[25, 17, 76, 12, 88]
Burada sıralı çıktı var:
[12, 17, 25, 76, 88]
İlk elemente bakın: 12
Son öğeye bak: 88

Liste Nedir?

Liste, Koleksiyonu bir Kümenin yaptığı gibi genişletir, ancak ekleme sırasını korur. Bir listeye aşağıdaki adları eklemeyi deneyin ve listeye nasıl eklendiğini görün.

Listeye giriş: John, Nancy, Mary, Alice.

Listede nasıl saklandığı: John, Nancy, Mary, Alice.

Eklendikleri sıraya dikkat edin. 'John' un hem giriş hem de çıkıştaki ilk öğe olduğunu ve ardından adların girildiği sırayı takip ettiğini belirleyebilirsiniz. Hatta bunu List'in en önemli özelliklerinden biri olarak düşünebiliriz..

Nasıl uygulanır??

Aşağıdaki sözdiziminde ArrayList ve LinkedList gibi Liste yöntemlerinden birkaçına bakalım.

içe aktar java.util. *;
public class Collectionssample

public static void main (Dize [] args)

Liste a1 = yeni ArrayList ();
a1.add ( “John”);
a1.add ( “Nancy”);
a1.add ( “Mary”);
a1.add ( “Alice”);
System.out.println (”ArrayList Elements are”);
System.out.print (“\ t” + a1);

Liste l1 = yeni LinkedList ();
l1.add ( “Silvia”);
l1.add ( “Arjun'un”);
l1.add ( “Deepika”);
l1.add ( “Susan”);
System.out.println ();
System.out.println (”LinkedList Elements are”);
System.out.print (“\ t” + l1);

Yukarıdaki sözdiziminin çıktısı aşağıdaki gibidir.

ArrayList Öğeleri:

[John, Nancy, Mary, Alice]

LinkedList Öğeleri

[Silvia, Arjun, Deepika, Susan]

Yukarıdaki koddan hem ArrayList hem de LinkedList'in ekleme sırasını koruduğu çok açıktır.

Nasıl Farklılaşırlar?

  • Yöntemler ve Açıklamalar:

Küme ve Liste'nin kendi yöntemleri vardır ve bunlardan birkaçına burada bakalım.

S.No Set - Yöntemler Liste - Yöntemler
1. Ekle() - Bir koleksiyona nesne eklemektir. void add (int dizini, Object obj) - Çağırma listesinin belirtilen 'dizinine' obj 'nesnesini ekler ve önceki öğeleri kaydırarak hiçbir öğenin üzerine yazılmamasını sağlar.
2. açık() - Bir koleksiyondaki nesneleri kaldırmaktır. boolean addAll (int dizini, Koleksiyon c) - 'C' koleksiyonunun tamamını çağrı listesine ve belirtilen 'indekse' ekler. Ayrıca hiçbir öğenin üzerine yazılmamasını sağlar. Ayrıca, dönüş değerini inceleyerek işleminin doğruluğunu kontrol edebiliriz. Değişiklik başarılı olursa 'true' değerini döndürür, aksi takdirde 'false' değerini döndürür.
3. () İçeren - Set'in içinde belirli bir nesne olup olmadığını kontrol etmektir. Nesne Kümede bulunuyorsa 'true' değerini döndürür. Nesne alma (int dizini) - Öğeyi veya nesneyi belirtilen 'dizinde' döndürür.
4. boş() - Koleksiyonun içinde hiçbir unsur olarak yardımcı olup olamayacağını belirlemektir. Öğe yoksa 'true' değerini döndürür. int lastIndexOf (Nesne hedefi) - Tersine benzer çalışır indeksi() Yöntem. Belirtilen Object 'obj' öğesinin son tekrarını döndürür ve listede böyle bir nesne yoksa '1' değeri döndürülür. Bu nedenle, () İçeren Set Arayüzü Yöntemi.
6. Kaldırmak() - Bir öğeyi, yönteme parametre olarak belirterek bir koleksiyondan kaldırmaktır. ListIterator listIterator () - Listenin başlangıç ​​dizinine bir yineleyici döndürür.
7. boyut() - Bir koleksiyonun sahip olduğu nesne veya öğe sayısını saymaktır. ListIterator listIterator (int dizini) - Belirtilen 'endeksten' başlayarak çağıran Liste üzerinden tekrarlamaya yardımcı olur.
8. - Nesne kaldırma (int dizini) - Belirtilen 'indeks' içindeki nesneyi siler ve silinen öğeyi sonuç olarak döndürür. Ayrıca, sonuç listesi indekslerini silmeyi yansıtacak şekilde azaltır.
9. - Nesne kümesi (int dizini, Nesne nesnesi) - 'Obj' nesnesini belirtilen 'index' deki çağıran listeye atamaktır.
10. - Liste alt listesi (int başlangıç, int bitiş) - Yöntemi çağıran listeye 'start' dizininden 'end' dizinine nesneleri dahil etmektir..
  • Ekleme Talimatı bakımı:

Küme, içine yerleştirildikleri öğelerin sırasını hiçbir zaman korumazken, Liste bunu korur. Ekleme sırasını koruduğu için LinkedHashSet için bu kuralın bir istisnası vardır, ancak HashSet ve TreeSet gibi diğer Set öğeleri saklamadan önce sıralar. Aynı şey aşağıdaki örneklerle açıklanmıştır.

Ayarlamak Giriş: Kedi, Oyuncak Bebek, Elma.

Depolandığı yer: Elma, Kedi, Oyuncak bebek.

Liste Girişi: Kedi, Oyuncak Bebek, Elma.

Depolandığı yer: Kedi, Oyuncak Bebek, Elma.

  • Yinelenenlerin varlığı:

Bir Küme asla kopyalara izin vermezken bir Liste buna izin verir. Bir listeye yinelenen bir değer eklenmesi gerekiyorsa üzerine yazılır. Yinelenenleri Ayarla ve Listele için örneklere bakın.

Set Girişi: 10, 20, 20, 50.

Depolama yeri: 10, 20, 50.

Liste Girişi: 10, 20, 20, 50.

Depolama yeri: 10, 20, 20, 50.

  • Boş Değerler:

Bir Küme yalnızca bir boş değere sahipken, bir Liste birden fazla boş değere sahip olabilir ve herhangi bir sayı ile sınırlı değildir.

Set Girişi: null, null, Adam, Köpek, Uçak.

Depolandığı yer: boş, Köpek, Adam, Uçak.

Liste Girişi: null, null, Adam, Köpek, Uçak.

Depolandığı yer: null, null, Adam, Köpek, Uçak.

  • Iterator ve ListIterator Kullanımı:

Iterator yöntemi hem Set hem de List ile iyi çalışır, ListIterator yöntemi ise yalnızca List ile çalışır. ListIterator List içinde ileri ve geri hareket etmek için kullanılabilir.

  • Eski Sınıfın varlığı:

Set'in eski bir sınıfı yoktur, Liste arayüzünde ise 'vektör' adı verilen bir eski vardır. Bir vektör Liste arabirimini kullanır ve bu nedenle ekleme sırasını korur. Senkronizasyon çabaları nedeniyle, vektörlerin ekleme, silme ve güncelleme işlemlerindeki performansı biraz daha yavaştır.

  • Uygulamalar:

Set uygulamalarından bazıları HashSet, LinkedHashSet ve TreeSet'tir. Listenin pek az uygulaması ArrayList ve LinkedList'i içerir.

Ayarla ve Listele ne zaman kullanılır??

Set ve List kullanımı tamamen ekleme talimatının sürdürülmesi gerekliliğine bağlıdır. Bir Setin yerleştirme sırasını hiçbir zaman korumadığını öğrendiğimiz için, sipariş daha az öneme sahip olduğunda kullanılabilir. Benzer şekilde, ekleme sırasını da korumanız gerektiğinde Liste'yi kullanın.

Tablo biçimindeki farklılıklar:

S.No Farklılıklar Ayarlamak Liste
1. Yerleştirme sırası Kampanya siparişini korur. İlk eklenen, değerinden bağımsız olarak ilk sırada kalır ve bu şekilde devam eder. Kampanya siparişini asla korumaz.
2. Yöntemler Add (), clear (), include (), isEmpty (), remove () ve size () gibi yöntemleri kullanır.. Add (), addAll (), get (), lastIndexOf (), ListIterator () parametresiyle veya parametresiz, remove (), set () ve subList () gibi yöntemleri kullanır..
3. çoğaltır Asla kopyalara izin vermez ve bu tür görünümlerde, değerin üzerine yazılır. Kopyalara izin verir.
4. Boş değerler Maksimumda yalnızca bir boş değer olabilir. Herhangi bir sayıda boş değere sahip olabilir.
5. Iterator () ve listIterator () kullanımı Yalnızca yineleyici () yöntemini kullanır. Hem iterator () hem de listIterator () yöntemini kullanır.
6. Eski Sınıfın Varlığı Eski sınıf yok. Vektör olarak adlandırılan Legacy sınıfı olarak var.
7. Uygulamalar Set arabirimi uygulamalarından bazıları HashSet, LinkedHashSet ve Tree Set'tir.. Liste arayüzü uygulamalarının bir kısmı LinkedList ve ArrayList'tir..

Umarım Set ve Liste arasındaki her olası farkı ekledik. Bir şeyi kaçırdığımızı düşünüyorsanız, lütfen bize bildirin.