Rozdíl Mezi Seznamem A Sadou

Obsah:

Rozdíl Mezi Seznamem A Sadou
Rozdíl Mezi Seznamem A Sadou

Video: Rozdíl Mezi Seznamem A Sadou

Video: Rozdíl Mezi Seznamem A Sadou
Video: Тим Харфорд: Попытка, ошибка и комплекс Бога 2024, Listopad
Anonim

Klíčový rozdíl - seznam vs sada

Většina programovacích jazyků používá pole k ukládání sady dat stejného typu. Jednou z hlavních nevýhod polí je to, že jakmile je deklarována velikost pole, nelze jej upravit. Pokud chce programátor uložit hodnoty přesahující velikost pole, měl by vytvořit nové pole a zkopírovat existující prvky do nového pole. V těchto situacích lze použít kolekce. S podporou sbírek je možné přidávat prvky, mazat prvky a mnoho dalších operací. V programovacích jazycích, jako je Java, jsou k dispozici různé typy sbírek. Seznam a sada jsou rozhraní hierarchie sbírek. Základní rozhraní pro další rozhraní je Collection. Klíčovým rozdílem mezi Listem a Setem je, že List podporuje ukládání stejného prvku vícekrát, zatímco Set nepodporuje ukládání stejného prvku vícekrát. Proto,a Sada neumožňuje duplikaci.

OBSAH

1. Přehled a klíčový rozdíl

2. Co je seznam

3. Co je sada

4. Podobnosti mezi seznamem a sadou

5. Srovnání vedle sebe - seznam vs. sada v tabulkové formě

6. Shrnutí

Co je to List?

Seznam je rozhraní, které rozšiřuje rozhraní kolekce. V rozhraní Collection existuje řada metod. Metoda add pomáhá přidat prvek. „Metoda odebrání“znamená odebrání prvku. Existuje metoda addAll pro přidání více prvků, zatímco metoda removeAll k odebrání prvků z kolekce. Metoda contains pomáhá zjistit, zda je konkrétní objekt v seznamu nebo ne. 'ContainsAll' je zjistit, zda je v kolekci přítomna sada objektů. Metoda iterátoru se používá k procházení položek seznamu. Jak List rozšiřuje Collection, všechny metody Collection patří do List. Kromě těchto metod obsahuje seznam metody jako get a set. Programátor může získat hodnotu na konkrétním indexu pomocí metody get. Programátor může nastavit hodnotu na konkrétním indexu pomocí metody set.'IndexOf' se používá k nalezení indexu prvku.

V seznamu lze operace provádět podle polohy. Programátor může poskytnout datový prvek, který má být přidán do indexu. Bude tedy přidán do konkrétního indexu. Pokud programátor neposkytne index, prvek bude přidán na konec seznamu. Udržuje také vložené pořadí. Pokud je přidán prvek 1 a poté prvek2, bude prvek1 před prvkem2.

Rozdíl mezi seznamem a sadou
Rozdíl mezi seznamem a sadou

Obrázek 01: Seznam a nastavení

ArrayList, LinkedList, Vector jsou některé třídy, které implementují List. V seznamu ArrayList je přístup k prvku rychlý, ale vkládání a mazání je nižší. ArrayList není bezpečný pro vlákna. Přístup ke stejnému seznamu ArrayList z více vláken nemusí poskytnout stejný výsledek. V LinkedList jsou prvky propojeny dozadu i dopředu. Vkládání a mazání prvků pomocí LinkedList je rychlejší než ArrayList. LinkedList implementuje List a Queue Both. Vektor je podobný ArrayList, ale je bezpečný pro běhoun, protože všechny metody jsou synchronizovány.

Co je Set?

Set je rozhraní, které rozšiřuje rozhraní Collection. Protože rozhraní Set rozšiřuje Collection, všechny metody Collection také patří do Setu. Sada nepodporuje hodnoty duplikace. Programátor proto nemůže uložit stejný prvek dvakrát. Udržuje jedinečnou sadu prvků. Rozhraní SortedSet rozšiřuje rozhraní Set. SortedSet udržuje prvky v seřazeném pořadí. Rozhraní NavigableSet rozšiřuje SortedSet. Sada NavigableSet poskytuje metody navigace, jako je spodní část, podlaha, strop atd.

HashSet, LinkedHashSet a TreeSet jsou některé třídy, které implementují rozhraní Set. HashSet implementuje rozhraní Set. Neudržuje vložené pořadí. Pokud jsou hodnoty vloženy jako a, x, b, může se uložit jako, x, a, b. LinkedSet udržuje vložené pořadí. Pokud jsou prvky vloženy v pořadí a, x, b, bude pořadí ukládání a, x, b. TreeSet implementuje Set a NavigableSet. Neudržuje pořadí vložení, ale ukládá prvky v seřazeném pořadí. Pokud je vložené pořadí a, c, b, budou prvky uloženy jako a, b, c. Všechny HashSet, LinkedHashSet a TreeSet nebudou mít žádné duplicitní prvky.

Jaké jsou podobnosti mezi seznamem a sadou?

  • Rozhraní List i Set rozšiřují rozhraní Collection.
  • Operace podpory List i Set, jako je přidávání a odebírání prvků.

Jaký je rozdíl mezi seznamem a sadou?

Seznam vs sada

Seznamové rozhraní je dílčí rozhraní kolekce, které obsahuje metody pro provádění operací, jako je vkládání a mazání na základě indexu. Set Interface je dílčí rozhraní Collection, které obsahuje metody pro provádění operací, jako je vkládání, mazání prvků při zachování jedinečných prvků.
Třídy
ArrayList, Vector a LinkedList jsou třídy, které implementují rozhraní seznamu. HashSet, LinkedHashSet a TreeSet jsou třídy, které implementují rozhraní Set.
Duplikace prvků
Seznam podporuje duplikaci prvků. Sada nepodporuje duplikaci prvků. Prvky jsou jedinečné.

Shrnutí - Seznam vs Sada

Kolekce se používají k dynamickému ukládání prvků. Programovací jazyky, jako je Java, poskytují rozhraní Collection. Seznam a Set jsou dvě rozhraní, která patří do rozhraní Collection. Obě rozhraní rozšiřují Collection. Tento článek pojednával o rozdílech mezi seznamem a sadou. Klíčovým rozdílem mezi Listem a Setem je to, že List podporuje ukládání stejného prvku vícekrát, zatímco Set nepodporuje ukládání stejného prvku vícekrát. Sada vždy zachovává jedinečné prvky.

Doporučená: