Java Collection poskytuje architekturu pro práci se skupinou objektů. Kolekce znamená jeden celek předmětů. Umožňuje nám ukládat a manipulovat se skupinou objektů jako s jednou jednotkou.
Můžeme snadno provádět mnoho operací, jako je vyhledávání, třídění, vkládání, mazání a manipulace se skupinou objektů pomocí rámce kolekce.
Java Collection framework poskytuje několik rozhraní a tříd. Rozhraní obsahují Soubor, Seznam , Fronta, Deque a třídy obsahují ArrayList , Vektor , Spojový seznam , HashSet , TreeSet , LinkedHashSet , a PriorityQueue .
porovnání řetězců v Javě
V této části budeme rozlišovat dva prvky Kolektivní rámec , což je Seznam a ArrayList. Seznam je rozhraní a ArrayList je třída.
Rozhraní seznamu
Seznam je podřízené rozhraní frameworku Collection, které nám umožňuje udržovat uspořádanou kolekci objektů. Duplicitní hodnoty a nulové prvky můžeme uložit pomocí List. Poskytuje metodu založenou na indexu pro provádění operací vkládání, odstraňování, vyhledávání a aktualizace objektů.
Rozhraní Seznamu probíhá v balíčku java.util. Implementuje třídy ArrayList, LinkedList, Stack a Vector. Je to také základ tříd ListIterator, pomocí kterých můžeme seznam iterovat vpřed a vzad.
Rozhraní seznamu poskytuje poziční přístup a vkládání prvků a zachovává pořadí vkládání. Instanci seznamu lze vytvořit pomocí implementačních tříd.
Implementace seznamu:
Rozhraní List můžeme implementovat pomocí ArrayList, LinkedList, Vector a Hromadné třídy .
K vytvoření instance rozhraní Seznam můžeme použít následující syntaxe:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Zvažte níže uvedený příklad seznamu:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Výstup:
0,04 jako zlomek
[Hello, Java, Tpoint]
Třída ArrayList
Třída ArrayList používá dynamické pole pro ukládání prvků. Třída ArrayList se chová jako pole, ale není v ní žádné omezení velikosti. Prvky můžeme přidávat nebo odebírat, kdykoli chceme. Duplicitní prvek můžeme uložit pomocí třídy ArrayList. Interně řídí pořadí vkládání.
Třída ArrayList je mnohem flexibilnější než tradiční pole. Implementuje rozhraní Seznam pro použití všech metod rozhraní Seznam. Odehrává se v Jáva balíček .util.
Třída ArrayList zdědí třídu AbstractList a implementuje rozhraní List. K jeho prvkům lze přistupovat náhodně. Nelze jej použít pro primitivní typy, jako je int, char atd.; pro tyto datové typy potřebujeme obalovou třídu.
Implementace ArrayList:
Třída ArrayList dědí všechny metody třídy AbstractList a implementuje rozhraní List.
Třídu ArrayList lze deklarovat následovně:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
ArrayList lze definovat následovně:
ArrayList myList = new ArrayList();
Zvažte níže uvedený příklad ArrayList:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Výstup:
[Hello, Java, Tpoint]
Některé klíčové rozdíly mezi rozhraním seznamu a třídou ArrayList
Některé hlavní rozdíly mezi List a ArrayList jsou následující:
- Jeden z hlavních rozdílů je ten List je rozhraní a ArrayList je třída frameworku Java Collection.
- The List rozšiřuje rámec kolekce , srovnatelně ArrayList rozšiřuje třídu AbstractList a implementuje rozhraní List .
- Jmenný prostor pro Seznam a ArrayList je System.Collection.Generic a System Collection.
- List ukládá prvky v sekvenci a jsou identifikovány individuálním indexovým číslem. Ve srovnání s tím ArrayList ukládá prvky do dynamického pole; v případě potřeby může růst.
Když seznam definujeme takto:
List myList = new ArrayList();
To znamená, že metody a referenční členy můžeme volat pouze z rozhraní Seznam.
Pokud definujeme ArrayList takto:
co dělá ravel v pythonu
ArrayList myList = new ArrayList();
To znamená, že můžeme vyvolat dostupné metody v ArrayList a použít jeho členy kromě seznamu.
Zvažte níže uvedenou tabulku pro některá srovnání hlav mezi List a ArrayList:
Základ srovnání | Seznam | ArrayList |
---|---|---|
Všeobecné | Je to rozhraní. | Je to třída. |
Práce | Vytváří seznam objektů, ke kterým lze přistupovat podle jednotlivých indexových čísel. | Vytváří dynamické pole, které lze v případě potřeby rozšířit. |
Implementace | Seznam seznam1= new ArrayList(); | ArrayList myList = new ArrayList(); |
Rozšířit/Implementovat | Rozšiřuje rámec sbírky. | Rozšiřuje třídu AbstractList a implementuje rozhraní List. |
Základní balíček | java.util | java.util |
Jmenný prostor | System.Collection.Generic | Systém. Kolekce |
Výkon | Umožňuje rychlejší manipulaci s předměty. | Ve srovnání se seznamem poskytuje pomalou manipulaci s objekty. |
Instanciace | Nelze vytvořit instanci. | Může být instanční |
Závěr
List je rozhraní a ArrayList je třída frameworku Java Collection. Seznam vytvoří statické pole a ArrayList vytvoří dynamické pole pro uložení objektů. Seznam tedy nelze rozbalit, jakmile je vytvořen, ale pomocí ArrayList můžeme pole v případě potřeby rozšířit.
Pokud chcete využít výhody polymorfismu, je lepší použít rozhraní seznamu. V budoucnu, pokud budeme muset implementovat rozhraní, nebudeme muset program měnit.