LinkedList je jednou z nejoblíbenějších datových struktur v programovacím jazyce Java. Umožňuje ukládat a spravovat sekvenci prvků, kde každá položka obsahuje odkaz na předchozí a další položky.
Chcete-li vytvořit LinkedList v Javě, musíte použít již vestavěnou třídu LinkedList z balíčku java.util. Tato třída poskytuje řadu metod, které vám umožňují přidávat, odstraňovat, upravovat a vyhledávat položky v propojeném seznamu.
Prvním krokem je vytvořit objekt LinkedList pomocí příkazu new:
LinkedList linkedList = new LinkedList();
Při oznámení LinkedList byste měli zadat typ dat, která budou uložena v seznamu. Pokud například chceme vytvořit seznam celých čísel, můžete použít následující záznam:
LinkedList linkedList = new LinkedList();
Nyní, máme prázdný LinkedList, do kterého můžete přidávat položky, mazat je hledat. V následujících článcích se podíváme na základní metody LinkedList a příklady jejich použití.
Definice a struktura LinkedList
Struktura LinkedList se skládá z uzlů, kde každý uzel obsahuje data a odkaz na další uzel. Každá operace přidání a odstranění položky ze seznamu vyžaduje změnu odkazů na předchozí a následující uzly.
Výhodou LinkedList oproti jiným datovým strukturám, jako je pole, je, že LinkedList může efektivně přidávat a odebírat položky ze seznamu, aniž by je musel Kopírovat do nových paměťových pozic.
Výhody a nevýhody LinkedList
Výhody:
1. Efektivní přidávání a odstraňování prvků: LinkedList umožňuje rychlé přidávání a mazání položek, protože nevyžaduje překopírování celé kolekce při změně velikosti. To je zvláště užitečné při práci s velkými daty nebo při častých operacích přidávání a mazání.
2. Pružnost: LinkedList umožňuje ukládat různé typy dat, včetně nulových hodnot. Nabízí také různé metody práce s prvky sbírky, jako je získání prvního/posledního prvku, získání podpisového listu, sloučení několika LinkedList atd.
3. Implementace rozhraní Queue: LinkedList lze použít jako frontu pomocí implementace rozhraní Queue. Díky tomu je LinkedList užitečný při řešení problémů, kde je důležité pořadí prvků.
Nedostatky:
1. Pomalý přístup k prvkům podle indexu: LinkedList vyžaduje průchod napříč strukturou, aby získal prvek podle jeho indexu. Proto jsou operace získávání prvků (get ()) prováděny pomaleji než v případě ArrayList.
2. Zabírá více paměti: Každý uzel na LinkedList vyžaduje další úložný prostor pro uložení odkazu na další a předchozí uzel. LinkedList proto při ukládání stejného počtu položek zabírá více paměti než ArrayList.
3. Vyžaduje více času na obcházení: LinkedList vyžaduje průchod napříč strukturou, aby bylo možné provádět operace vkládání, mazání a přístupu k položkám. To může zpomalit některé operace ve srovnání s jinými sbírkami.
Jak vytvořit LinkedList
Vytvoření LinkedList v Javě je velmi snadné. Nejprve musíte importovat třídu LinkedList:
import java.util.LinkedList;
Poté můžete vytvořit objekt LinkedList zadáním typu objektů, které budou uloženy v seznamu. Pokud například potřebujete vytvořit seznam pro uložení celých čísel, můžete vytvořit následující objekt:
LinkedList list = new LinkedList<>();
Nyní můžete do seznamu přidat položky pomocí metody add . Například pro přidání čísla 5 do seznamu:
list.add(5);
Položky lze také přidat na konec seznamu pomocí metody addLast :
list.addLast(10);
Chcete-li získat položku ze seznamu podle indexu, můžete použít metodu get . Například získat první položku seznamu:
int firstElement = list.get(0);
LinkedList také poskytuje mnoho dalších metod pro přidání, odstranění a změnu položek. Používejte je podle svých potřeb.
Operace s LinkedList
Přidání položky na konec seznamu:
Chcete-li přidat položku na konec propojeného seznamu, musíte použít metodu add(). Metoda přidá uvedenou položku na konec seznamu.
Odstranění položky ze seznamu:
Chcete-li odstranit položku z přidruženého seznamu, musíte použít metodu remove(). Metoda odstraní uvedenou položku ze seznamu, pokud je přítomna. Pokud prvek není nalezen, metoda nic nedělá.
Získání položky podle indexu:
Chcete-li získat položku podle indexu v propojeném seznamu, musíte použít metodu get(). Metoda vrací položku umístěnou na zadaném indexu.
Kontrola položky v seznamu:
Chcete-li zkontrolovat, zda je položka v přidruženém seznamu přítomna, musíte použít metodu contains(). Metoda vrací true pokud je položka přítomna v seznamu, jinak - false.
Příklad použití LinkedList v Javě
LinkedList v Javě je datová struktura, která poskytuje flexibilnější implementaci propojeného seznamu.
Zde je příklad použití LinkedList v Javě:
import java.util.LinkedList;public class LinkedListExample ();// Добавление элементов в LinkedListlinkedList.add("Первый элемент");linkedList.add("Второй элемент");linkedList.add("Третий элемент");System.out.println("Содержимое LinkedList: " + linkedList);// Доступ к элементам LinkedListString firstElement = linkedList.getFirst();String lastElement = linkedList.getLast();System.out.println("Первый элемент: " + firstElement);System.out.println("Последний элемент: " + lastElement);// Удаление элементов из LinkedListlinkedList.removeFirst();linkedList.removeLast();System.out.println("Содержимое LinkedList после удаления: " + linkedList);>>
V důsledku provádění tohoto kódu bude vyvedeno následující:
Содержимое LinkedList: [Первый элемент, Второй элемент, Третий элемент]Первый элемент: Первый элементПоследний элемент: Третий элементСодержимое LinkedList после удаления: [Второй элемент]
Příklad ukazuje, jak vytvořit objekt LinkedList, přidat položky, přistupovat k prvkům a odstranit položky. LinkedList poskytuje různé metody pro práci se seznamem, které lze použít k provádění různých operací.