logo

Rozdíl mezi List a ArrayList

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.

Rozdíl mezi List a ArrayList

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.