logo

Rozdiel medzi List a ArrayList

Kolekcia Java poskytuje architektúru na prácu so skupinou objektov. Zbierka znamená jeden celok predmetov. Umožňuje nám ukladať a manipulovať so skupinou objektov ako s jednou jednotkou.

Pomocou kolekcie môžeme jednoducho vykonávať mnoho operácií, ako je vyhľadávanie, triedenie, vkladanie, mazanie a manipulácia so skupinou objektov.

Framework Java Collection poskytuje niekoľko rozhraní a tried. Rozhrania obsahujú nastaviť, Zoznam , Fronta, Deque a triedy obsahujú ArrayList , Vektor , LinkedList , HashSet , TreeSet , LinkedHashSet , a PriorityQueue .

reštartujte mysql ubuntu

V tejto časti budeme rozlišovať dva prvky Kolekčný rámec , čo je List a ArrayList. Zoznam je rozhranie a ArrayList je trieda.

Rozdiel medzi List a ArrayList

Rozhranie zoznamu

Zoznam je podriadené rozhranie rámca kolekcie, ktoré nám umožňuje udržiavať usporiadanú kolekciu objektov. Pomocou Listu môžeme uložiť duplicitné hodnoty a nulové prvky. Poskytuje metódu založenú na indexe na vykonávanie operácií vkladania, odstraňovania, vyhľadávania a aktualizácie objektov.

Rozhranie Zoznamu prebieha v balíku java.util. Implementuje triedy ArrayList, LinkedList, Stack a Vector. Je to tiež základ tried ListIterator, pomocou ktorých môžeme iterovať zoznam v smere dopredu a dozadu.

Rozhranie zoznamu poskytuje pozičný prístup a vkladanie prvkov a zachováva poradie vkladania. Inštanciu zoznamu je možné vytvoriť pomocou implementačných tried.

Implementácia zoznamu:

Rozhranie List môžeme implementovať pomocou ArrayList, LinkedList, Vector a Hromadné triedy .

Na vytvorenie inštancie rozhrania zoznamu môžeme použiť nasledujúce syntaxe:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Zvážte nasledujúci príklad zoznamu:

 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ýkon:

ako získať hru holub na android
 [Hello, Java, Tpoint] 

Trieda ArrayList

Trieda ArrayList používa dynamické pole na ukladanie prvkov. Trieda ArrayList funguje ako pole, ale nie je v nej žiadne obmedzenie veľkosti. Prvky môžeme pridávať alebo odoberať kedykoľvek chceme. Duplicitný prvok môžeme uložiť pomocou triedy ArrayList. Interne riadi poradie vkladania.

Trieda ArrayList je oveľa flexibilnejšia ako tradičné pole. Implementuje rozhranie zoznamu na použitie všetkých metód rozhrania zoznamu. Odohráva sa v Java balík .util.

Trieda ArrayList zdedí triedu AbstractList a implementuje rozhranie List. K jeho prvkom je možné pristupovať náhodne. Nedá sa použiť pre primitívne typy ako int, char atď.; pre tieto typy údajov potrebujeme obalovú triedu.

Implementácia ArrayList:

Trieda ArrayList zdedí všetky metódy triedy AbstractList a implementuje rozhranie List.

Trieda ArrayList môže byť deklarovaná takto:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList možno definovať takto:

 ArrayList myList = new ArrayList(); 

Zvážte nižšie uvedený prí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ýkon:

 [Hello, Java, Tpoint] 

Niektoré kľúčové rozdiely medzi rozhraním zoznamu a triedou ArrayList

Niektoré hlavné rozdiely medzi zoznamom a zoznamom ArrayList sú nasledovné:

  • Jedným z hlavných rozdielov je to List je rozhranie a ArrayList je trieda rámca Java Collection.
  • The Zoznam rozširuje rámec zbierky , porovnateľne ArrayList rozširuje triedu AbstractList a implementuje rozhranie List .
  • Menný priestor pre zoznam a ArrayList je System.Collection.Generic a System Collection.
  • Zoznam ukladá prvky v poradí a sú identifikované individuálnym indexovým číslom. V porovnaní s tým ArrayList ukladá prvky do dynamického poľa; v prípade potreby môže rásť.

Keď zoznam definujeme takto:

 List myList = new ArrayList(); 

Znamená to, že metódy a referenčné členy môžeme volať len z rozhrania zoznamu.

Ak definujeme ArrayList takto:

java reťazec na booleovskú hodnotu
 ArrayList myList = new ArrayList(); 

Znamená to, že môžeme vyvolať dostupné metódy v ArrayList a použiť jeho členov okrem zoznamu.

Zvážte nižšie uvedenú tabuľku pre niektoré porovnania hláv medzi zoznamom a zoznamom ArrayList:

Základ porovnávania Zoznam ArrayList
generál Je to rozhranie. Je to trieda.
Práca Vytvára zoznam objektov, ku ktorým je možné pristupovať podľa jednotlivých indexových čísel. Vytvára dynamické pole, ktoré možno v prípade potreby rozšíriť.
Implementácia Zoznam zoznam1= new ArrayList(); ArrayList myList = new ArrayList();
Rozšíriť/Implementovať Rozširuje rámec zberu. Rozširuje triedu AbstractList a implementuje rozhranie List.
Základný balík java.util java.util
Menný priestor System.Collection.Generic Systém.Kolekcia
Výkon Umožňuje rýchlejšiu manipuláciu s predmetmi. V porovnaní so Zoznamom poskytuje pomalú manipuláciu s objektmi.
Inštancia Nie je možné vytvoriť inštanciu. Môže to byť inštancia

Záver

Zoznam je rozhranie a ArrayList je trieda rámca Java Collection. Zoznam vytvára statické pole a zoznam ArrayList vytvára dynamické pole na ukladanie objektov. Zoznam teda nie je možné po vytvorení rozšíriť, ale pomocou ArrayList môžeme pole v prípade potreby rozšíriť.

Ak chcete využiť výhody polymorfizmu, je lepšie použiť rozhranie zoznamu. V budúcnosti, ak budeme musieť implementovať rozhranie, nebudeme musieť program meniť.