Küme ve Liste arasındaki fark Gerçek farklara girmeden önce

Anonim

Array Listesiyle Bağlantılı Liste Arasındaki Farklar

kavramıyla karşılaştık. Gerçek farklılıklara girmeden önce, onların gerçekte ne olduklarını öğrenmemize izin verelim mi?

Set Nedir?

Matematik kavramıyla karşılaştık ve Set burada az ya da çok anlam ifade ediyor. Evet, öğelerden oluşan bir koleksiyon ve çoğu durumda benzer öğelerden oluşan bir koleksiyon. Bu öğeleri bir Kümeye eklemeyi deneyebilir ve anlamak için, aslında nasıl saklandığını yazdırmayı deneyebilirsiniz.

20, 50, 10, 30. Aslında Set'te

olarak saklanır 10, 20, 30, 50. Elemanlar burada sıralanır ve ekleme siparişinde saklanır. Bu Set'in özelliklerinden birisidir ve depolamadan önce öğeleri her zaman sıralar ve elbette istisnalar vardır ve elemanların ekleme sırasını muhafaza ettiği gibi LinkedhashSet de bunlardan biridir.

Bilgisayar ortamında Set, Methods and Inheritance gibi birkaç ek özellik içerir. Yöntemler tıpkı işlevler gibidir ve elemanlar kümesiyle ekleme, kaldırma veya yineleme gibi belirli görevleri yapar. Çoğumuz Miras terimiyle tanınır ve burada aynı anlamına gelir. Evet, Bir Yöntemi Koleksiyonundan devralabiliriz, böylece Set Arayüzü ile kullanılabilir. Yine yeni bir terimden bahsediyoruz i. e. Set Arayüzü ve Yöntemler de dahil olmak üzere tüm öğeler kümesinden başka bir şey değildir.

Nasıl uygulanır?

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

import java. util. *;

public class Setexample {

public static void main (String args []) {

int sayım [] = {34, 22, 10, 60, 30, 22} {25, 17, 76, 12, 88, 57};

Set set = new HashSet ();

{int> i = 0; i <5; i ++) {

için {

deneyin. ekleyin (sayım [i]);

}

Sistem. dışarı. println (grubu);

TreeSet sortedSeteg = yeni TreeSet (set);

Sistem. dışarı. println ("Burada sıralanmış çıktı var:");

Sistem. dışarı. println (sortedSeteg);

Sistem. dışarı. println ("İlk öğeye bak:" + (Tamsayı) sortedSet. first ());

Sistem. dışarı. println ("Son öğeye bak:" + (Tamsayı) sortedSet. last ());

}

catch (Exception e) {}

}

}

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

[25, 17, 76, 12, 88]

Burada sıralanmış çıktılar var:

[12, 17, 25, 76, 88]

Birinci unsura bakın: 12 > Son öğeye bakın: 88

Liste Nedir?

Bir List, Koleksiyon'un bir Set'in yaptığı işle benzer şekilde genişletilmesini sağlar, ancak ekleme sırasını korur. Aşağıdaki isimleri bir listeye eklemeyi deneyin ve ona nasıl eklenir bakın.

Listeye giriş:

John, Nancy, Mary, Alice.

Listede nasıl saklanır: John, Nancy, Mary, Alice.

Sadece takıldıkları sıraya dikkat et. Girdi içindeki ilk öğe olan 'John' 'ın ve çıktıların ve adların eklendiği sırayla aynı olduğunu belirleyebilirsiniz. Bunu List'in en önemli özelliklerinden biri olarak bile düşünebiliriz. Nasıl uygulanır?

Aşağıdaki sözdiziminde ArrayList ve LinkedList gibi List yöntemlerinden azına göz atalım.

import java. util. *;

public class Collectionssample {

public static void main (String [] args) {

List a1 = new ArrayList ();

a1. (“John”) ekleyin;

a1. (“Nancy”) ekleyin;

a1. (“Mary”) ekleyin;

a1. (“Alice”) ekleyin;

Sistem. dışarı. println ("ArrayList Elemanlar");

Sistem. dışarı. yazdır (" t" + a1);

Liste l1 = yeni LinkedList ();

l1. (“Silvia”) ekleyin;

l1. (“Arjun'u”) ekleyin;

l1. (“Deepika”) ekleyin;

l1. (“Susan”) ekleyin;

Sistem. dışarı. println ();

Sistem. dışarı. println ("LinkedList Elements are");

Sistem. dışarı. yazdır (" 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, ArrayList'in ve LinkedList ekleme siparişini tutar.

Nasıl Farklılar?

Yöntemler ve Açıklamaları:

Set ve List kendi yöntemlerine sahiptir ve burada bunlardan azına göz atalım.

  • S. Hayır

Set - Yöntemler

Liste - Yöntemler 1. add ()
- Bir koleksiyona nesneler eklemektir. void add (int index, Object obj) - 'obj' nesnesini çağıran listenin belirtilen 'dizinine ekler ve önceki öğelerin kaydırılmasıyla herhangi bir öğenin üzerine yazılmadığından emin olur. 2. clear () -
Nesneleri bir koleksiyondan kaldırmaktır. boolean addAll (int index, Koleksiyon c) - 'c' koleksiyonunun tamamı, çağıran listeye ve belirtilen 'dizin' e eklenir. Ayrıca hiçbir öğenin üzerine yazılmamasını sağlar. Dönüş değerini inceleyerek operasyonunun doğruluğunu da kontrol edebiliriz. Değişiklik başarılıysa 'true', aksi takdirde 'false' değeri döndürür. 3. contains () -
Set'in içinde belirli bir nesne olup olmadığını kontrol etmek. Nesne Set'te mevcutsa, 'true' değeri döndürür. Object get (int index) - Belirtilen 'dizin' de öğeyi veya nesneyi döndürür. 4. isEmpty ()
- Koleksiyonun içinde hiçbir element olmadığı gibi yardımcı olup olmadığını belirlemektir. Hiçbir öğe yoksa 'true' değeri döndürür. int lastIndexOf (Object obj) - indexOf () Yönteminin tersine benzer şekilde çalışır. Belirtilen Nesne 'obj' 'in son durumunu döndürür ve listede böyle bir nesne yoksa' 1 'değeri döndürür. Bu nedenle contains () Set Arayüzü Yöntemi olarak da kullanılabilir. 6. remove ()
- Bir öğeyi, yöntemin bir parametresi olarak belirterek koleksiyondan kaldırmaktır. ListIterator listIterator () - Listenin başlangıç ​​dizinine yineleyici döndürür. 7. size ()
- Bir koleksiyonun sahip olduğu nesne veya öğelerin sayısını hesaplamaktır. ListIterator listIterator (int index) - Belirtilen 'dizin' ten başlayarak çağıran List aracılığıyla yinelenmeye yardımcı olur. 8. -
Nesne kaldırır (int index) - Belirtilen 'dizin' te nesneyi siler ve silinen öğeyi sonuç olarak döndürür. Silme işlemini yansıtacak şekilde sonuç dizin dizinlerini de azaltır. 9. -
Nesne kümesi (int index, Object obj) - Nesne 'obj' öğesini belirtilen 'index' bölümündeki çağırma listesine atamaktır. 10. -
Liste altListesi (int start, int end) - Yöntemi çağıran listede 'start' dizininden 'end' dizinine nesneler eklenir. Ekleme Siparişi bakımı: Set, listeye eklendiği öğelerin sırasını asla korurken, List, onu korur. Ekleme sırasını korurken ancak HashSet ve TreeSet gibi diğer Küme, öğeleri depolamadan önce sıralarken, LinkedHashSet için bu kural için bir istisna vardır. Aynı şey aşağıdaki örneklerle açıklanmaktadır.
  • Set

Giriş: Kedi, Bez, Elma.

Şu şekilde saklanır: Apple, Cat, Doll.

Liste Girişi: Kedi, Bezelye, Elma.

Şu şekilde saklanır: Kedi, Bez, Elma.

Çoğaltılmışların varlığı:

Bir Küme çoğaltılamaz, oysa bir List buna izin verir. Listeye yinelenen bir değer eklenmeliyse üzerine yazılır. Set ve List duplicates için örneklere bakın.

  • Set Girdi: 10, 20, 20, 50.

Kayıtlı olarak: 10, 20, 50.

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

olarak saklanır. 10, 20, 20, 50.

Boş Değerler:

Bir Küme yalnızca bir boş değeri, List'te birden fazla boş değeri olabilir ve herhangi bir sayı ile sınırlandırılamaz.

  • Set Input: null, null, Man, Köpek, Düzlem.

Şu şekilde saklanır: null, Köpek, Adam, Düzlem.

Liste Girişi: null, null, Man, Köpek, Düzlem.

olarak kaydedildi: null, null, Man, Köpek, Düzlem.

Iterator ve ListIterator Kullanımı:

Iterator yöntemi hem Set hem de List ile iyi çalışır, ListIterator yöntemi yalnızca List ile çalışır. Liste İteratörü, Liste boyunca ileriye doğru ve geriye doğru ilerlemek için kullanılabilir.

  • Eski Klasın varlığı:

Set, eski sınıflara sahip değilken, List arayüzü 'vektör' olarak adlandırılan bir mirasa sahiptir. Bir vektör List arabirimini kullanır ve bu nedenle ekleme sırasını korur. Senkronizasyon çabalarından dolayı ekleme, silme ve güncellemelerde vektör performansı biraz daha yavaştır.

  • Gerçekleştirmeler:

Set uygulamalarının birçoğu HashSet, LinkedHashSet ve TreeSet'tir. List uygulamalarının pek azı ArrayList ve LinkedList'i içeriyor.

  • Set & List ne zaman kullanılır?

Set ve List kullanımı tamamen ekleme talimatının bakım gereksinimine bağlıdır.Set'in hiçbir zaman ekleme sırasını koruduğunu öğrendikçe, sipariş daha az önem verildiğinde kullanılabilir. Aynı şekilde, ekleme dizisini de korumanız gerektiğinde List'i kullanın.

Tabular biçimdeki farklılıklar:

S.

Set Liste Farkları 1. Ekleme Siparişi
Ekleme siparişini tutar. İlk takılan ilk etapta kalır ve bu şekilde değeri dikkate alınmaz. Ekleme siparişini hiçbir zaman muhafaza etmez. 2. Yöntemler
add (), clear (), contains (), isEmpty (), remove () ve size () gibi yöntemleri kullanır. add (), addAll (), get (), lastIndexOf (), ListIterator () parametresi olan veya içermeyen, remove (), set () ve subList () gibi yöntemleri kullanır. 3. Çiftler
Kopyalamaya asla izin vermez ve böyle görünüşlerde değer üzerine yazılır. Çiftleri sağlar. 4. Boş değerler
En fazla bir boş değeri olabilir. Herhangi bir sayıda boş değeri olabilir. 5. Iterator () ve listIterator ()
kullanımı Yalnızca yineleyici () yöntemini kullanır. Hem iterator () hem de listIterator () işlevini kullanır. 6. Eski Sınıfın Bulunması
Eski Sınıf yoktur. Vektör olarak adlandırılan Eski sınıf vardır. 7. Uygulamalar
Set arabirim uygulamalarının birçoğu HashSet, LinkedHashSet ve Tree Set'tir. Liste arayüzü uygulamalarının birçoğu LinkedList ve ArrayList'tir. Umut, Set ile List arasındaki olası tüm farklılıkları dahil ettik. Bir şeyi kaçırdığınızı düşünüyorsanız, lütfen bize bildirin.