V tomto tutoriálu se seznámíme s rozhraním List v Javě a jeho metodami.
V Javě je List
rozhraní uspořádanou kolekcí, která nám umožňuje ukládat a přistupovat k prvkům postupně. Rozšiřuje Collection
rozhraní.
Třídy, které implementují seznam
Protože List
je to rozhraní, nemůžeme z něj vytvářet objekty.
Abychom mohli používat funkce List
rozhraní, můžeme použít tyto třídy:
- ArrayList
- Spojový seznam
- Vektor
- Zásobník
Tyto třídy jsou definovány v rámci kolekce a implementují List
rozhraní.
Jak používat seznam?
V Javě musíme java.util.List
pro použití importovat balíček List
.
// ArrayList implementation of List List list1 = new ArrayList(); // LinkedList implementation of List List list2 = new LinkedList();
Zde jsme vytvořili objekty list1 a list2 tříd ArrayList
a LinkedList
. Tyto objekty mohou využívat funkce List
rozhraní.
Metody seznamu
List
Rozhraní zahrnuje všechny metody Collection
rozhraní. Je to proto, že Collection
je super rozhraní List
.
Některé z běžně používaných metod Collection
rozhraní, které je také k dispozici v List
rozhraní, jsou:
add()
- přidá prvek do seznamuaddAll()
- přidá všechny prvky jednoho seznamu do druhéhoget()
- pomáhá náhodně přistupovat k prvkům ze seznamůiterator()
- vrátí objekt iterátoru, který lze použít k sekvenčnímu přístupu k prvkům seznamůset()
- mění prvky seznamůremove()
- odebere prvek ze seznamuremoveAll()
- odstraní všechny prvky ze seznamuclear()
- odstraní všechny prvky ze seznamu (účinnější nežremoveAll()
)size()
- vrátí délku seznamůtoArray()
- převede seznam na polecontains()
- vrátí,true
pokud seznam obsahuje zadaný prvek
Implementace rozhraní seznamu
1. Implementace třídy ArrayList
import java.util.List; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating list using the ArrayList class List numbers = new ArrayList(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); ) )
Výstup
Seznam: (1, 2, 3) Přistupovaný prvek: 3 Odstraněný prvek: 2
Další informace ArrayList
najdete na Java ArrayList.
2. Implementace třídy LinkedList
import java.util.List; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating list using the LinkedList class List numbers = new LinkedList(); // Add elements to the list numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("List: " + numbers); // Access element from the list int number = numbers.get(2); System.out.println("Accessed Element: " + number); // Using the indexOf() method int index = numbers.indexOf(2); System.out.println("Position of 3 is " + index); // Remove element from the list int removedNumber = numbers.remove(1); System.out.println("Removed Element: " + removedNumber); ) )
Výstup
Seznam: (1, 2, 3) Přistupovaný prvek: 3 Pozice 3 je 1 Odstraněný prvek: 2
Chcete-li se dozvědět více o LinkedList
, navštivte Java LinkedList.
Seznam Java vs. sada
Obě List
rozhraní a Set
rozhraní dědí Collection
rozhraní. Existuje však mezi nimi určitý rozdíl.
- Seznamy mohou obsahovat duplicitní prvky. Sady však nemohou obsahovat duplicitní prvky.
- Prvky v seznamech jsou uloženy v určitém pořadí. Prvky v sadách jsou však uloženy ve skupinách, jako jsou sady v matematice.
Teď, když víme, co List
je, uvidíme jeho implementace ArrayList
a LinkedList
třídy podrobně v příštích kurzech.