Rozdíl mezi seznamem a sadou

Klíčový rozdíl - Seznam vs Soubor
 

Většina programovacích jazyků používá pole k uložení sady dat stejného typu. Jednou z hlavních nevýhod polí je, že jakmile je deklarována velikost pole, nelze ji změnit. Pokud chce programátor uložit hodnoty přesahující velikost pole, měl by vytvořit nové pole a zkopírovat stávající prvky do nového pole. V těchto situacích lze použít sbírky. Je možné přidávat prvky, odstraňovat prvky a mnoho dalších operací s podporou kolekcí. 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ím rozhraním pro jiná rozhraní je kolekce. klíčový rozdíl mezi List a Set je to Seznam podporuje ukládání stejného prvku vícekrát, zatímco sada nepodporuje ukládání stejného prvku vícekrát. Proto sada neumožňuje duplicitu.

OBSAH

1. Přehled a klíčový rozdíl
2. Co je seznam
3. Co je Set
4. Podobnosti mezi seznamem a sadou
5. Porovnání bok po boku - Seznam vs Set v tabulkové formě
6. Shrnutí

Co je seznam?

Seznam je rozhraní, které rozšiřuje rozhraní kolekce. V rozhraní kolekce je řada metod. Metoda přidání 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' pro odebrání prvků ze sbírky. Metoda obsahuje pomáhá zjistit, zda je konkrétní objekt v seznamu nebo ne. „Obsahuje vše“ je zjistit, zda je v kolekci přítomna sada objektů. Metoda iterátoru se používá k procházení položek seznamu. Jak seznam rozšiřuje kolekce, patří všechny metody kolekce do seznamu. Seznam kromě těchto metod obsahuje metody, jako je get a set. Programátor může získat hodnotu v určitém indexu pomocí metody get. Programátor může nastavit hodnotu na určitý index 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 specifického indexu. Pokud programátor nedá index, prvek bude přidán na konec seznamu. Zachová také zadané pořadí. Pokud se přidá prvek 1 a poté se přidá prvek 2, bude prvek 1 před prvkem 2.

Obrázek 01: Seznam a sada

ArrayList, LinkedList, Vector jsou některé třídy, které implementují List. V ArrayListu je přístup k prvku rychlý, ale vkládání a mazání je nižší. ArrayList není bezpečný pro vlákno. Přístup ke stejnému ArrayListu z více vláken nemusí vést ke stejnému výsledku. V Propojeném seznamu jsou prvky spojeny jak dozadu, tak vpřed. Vkládání a mazání prvků pomocí propojeného seznamu je rychlejší než pole ArrayList. Propojený seznam implementuje seznam i frontu. 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 kolekce, patří do sady také všechny metody kolekce. 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. NavigableSet poskytuje navigační metody, jako je spodní, podlaha, strop atd.

HashSet, LinkedHashSet a TreeSet jsou některé třídy, které implementují rozhraní Set. HashSet implementuje Nastavit rozhraní. Nezachovává vložený příkaz. Pokud jsou hodnoty vloženy jako a, x, b, může se uložit jako, x, a, b. LinkedSet udržuje vloženou objednávku. 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. Nezachovává pořadí vkládání, ale ukládá prvky v seřazeném pořadí. Pokud je vložený příkaz 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í seznamu i sady rozšiřují rozhraní kolekce.
  • Seznam i sada podpůrných operací, jako je přidávání, odebírání prvků.

Jaký je rozdíl mezi seznamem a sadou?

Seznam vs Set

Rozhraní seznamu je dílčí rozhraní kolekce, které obsahuje metody provádění operací, jako je vložení, odstranění na základě indexu. Nastavit rozhraní je dílčí rozhraní kolekce, které obsahuje metody provádění operací, jako je vložení, odstranění prvků při zachování jedinečných prvků.
 Třídy
ArrayList, Vector a LinkedList jsou třídy, které implementují rozhraní List. HashSet, LinkedHashSet a TreeSet jsou třídy, které implementují rozhraní Set.
Duplikace prvku
Seznam podporuje duplicitu prvků. Sada nepodporuje duplicitu prvků. Prvky jsou jedinečné.

souhrn - Seznam vs Soubor

Kolekce se používají k dynamickému ukládání prvků. Programovací jazyky, jako je Java, poskytují rozhraní Collection. Seznam a sada jsou dvě rozhraní, která patří do rozhraní kolekce. Obě rozhraní rozšiřují kolekce. Tento článek popisuje rozdíl mezi seznamem a sadou. Klíčový rozdíl mezi seznamem a sadou spočívá v tom, že seznam podporuje ukládání stejného prvku vícekrát, zatímco sada nepodporuje ukládání stejného prvku vícekrát. Sada vždy udržuje jedinečné prvky.

Odkaz:

1.Point, Návody. „Kolekce Java.“, Tutorials Point, 8. ledna 2018. K dispozici zde