logo

Ero Listan ja ArrayListin välillä

Java-kokoelma tarjoaa arkkitehtuurin objektiryhmän käsittelemiseksi. Kokoelma tarkoittaa yhtä esineyksikköä. Sen avulla voimme tallentaa ja käsitellä objektiryhmää yhtenä yksikkönä.

Voimme helposti suorittaa monia toimintoja, kuten etsimisen, lajittelun, lisäämisen, poistamisen ja manipuloinnin objektiryhmälle kokoelmakehyksen avulla.

Java Collection -kehys tarjoaa useita rajapintoja ja luokkia. Liitännät sisältävät Aseta, Lista , Jono, Deque , ja luokat sisältävät ArrayList , Vektori , LinkedList , HashSet , TreeSet , LinkedHashSet , ja PriorityQueue .

rhel vs centos

Tässä osiossa erottelemme kaksi elementtiä Keräyskehys , joka on List ja ArrayList. List on käyttöliittymä ja ArrayList on luokka.

Ero Listan ja ArrayListin välillä

Luettelon käyttöliittymä

Lista on Collection-kehyksen alikäyttöliittymä, jonka avulla voimme ylläpitää objektien järjestettyä kokoelmaa. Voimme tallentaa päällekkäiset arvot ja nollaelementit käyttämällä List. Se tarjoaa indeksipohjaisen menetelmän kohteiden lisäys-, poisto-, haku- ja päivitystoimintojen suorittamiseen.

List-käyttöliittymä on java.util-paketissa. Se toteuttaa ArrayList-, LinkedList-, Stack- ja Vector-luokkia. Se on myös pohja ListIterator-luokille, joiden avulla voimme iteroida Listaa eteenpäin ja taaksepäin.

Luettelon käyttöliittymä tarjoaa sijaintien pääsyn ja elementtien lisäämisen ja säilyttää lisäysjärjestyksen. Listan ilmentymä voidaan luoda käyttämällä toteutusluokkia.

Listan toteutus:

Voimme toteuttaa List-rajapinnan käyttämällä ArrayList-, LinkedList-, Vector- ja Pinoa luokat .

List-käyttöliittymän luomiseksi voimme käyttää seuraavia syntakseja:

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

Harkitse alla olevaa esimerkkiä luettelosta:

 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); } } 

Lähtö:

esimerkki binaarihakupuusta
 [Hello, Java, Tpoint] 

ArrayList-luokka

ArrayList-luokka käyttää dynaamista taulukkoa elementtien tallentamiseen. ArrayList-luokka toimii kuin taulukko, mutta siinä ei ole kokorajoitusta. Voimme lisätä tai poistaa elementtejä milloin tahansa. Voimme tallentaa kaksoiselementin käyttämällä ArrayList-luokkaa. Se hallitsee lisäysjärjestystä sisäisesti.

ArrayList-luokka on paljon joustavampi kuin perinteinen taulukko. Se toteuttaa List-rajapinnan käyttämään kaikkia List Interfacen menetelmiä. Se tapahtuu vuonna Java .util-paketti.

ArrayList-luokka perii AbstractList-luokan ja toteuttaa List Interfacen. Sen elementtejä voidaan käyttää satunnaisesti. Sitä ei voi käyttää primitiivisille tyypeille, kuten int, char jne.; näitä tietotyyppejä varten tarvitsemme kääreluokan.

ArrayListin toteutus:

ArrayList-luokka perii kaikki AbstractList-luokan menetelmät ja toteuttaa List-rajapinnan.

ArrayList-luokka voidaan ilmoittaa seuraavasti:

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

ArrayList voidaan määritellä seuraavasti:

 ArrayList myList = new ArrayList(); 

Harkitse alla olevaa esimerkkiä ArrayLististä:

 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); } } 

Lähtö:

 [Hello, Java, Tpoint] 

Jotkut tärkeimmät erot List-liitännän ja ArrayList-luokan välillä

Jotkut tärkeimmät erot Listan ja ArrayListin välillä ovat seuraavat:

  • Yksi suurimmista eroista on se List on käyttöliittymä ja ArrayList on luokka Java Collection -kehyksestä.
  • The Lista laajentaa kokoelmakehystä , verrattuna ArrayList laajentaa AbstractList-luokkaa ja toteuttaa List-rajapinnan .
  • Listan ja ArrayListin nimiavaruus on System.Collection.Generic ja System Collection.
  • Luettelo tallentaa elementit järjestyksessä, ja ne tunnistetaan yksittäisellä indeksinumerolla. Vertailun vuoksi ArrayList tallentaa elementit dynaamiseen taulukkoon; se voi kasvaa tarvittaessa.

Kun määrittelemme listan seuraavasti:

 List myList = new ArrayList(); 

Se tarkoittaa, että voimme kutsua menetelmiä ja viitejäseniä vain List-liittymästä.

Jos määritämme ArrayListin seuraavasti:

lista solmu javassa
 ArrayList myList = new ArrayList(); 

Se tarkoittaa, että voimme kutsua ArrayListin käytettävissä olevia menetelmiä ja käyttää sen jäseniä Listan lisäksi.

Harkitse alla olevaa taulukkoa joidenkin List- ja ArrayList-päiden vertailuun:

Vertailupohja Lista ArrayList
Kenraali Se on käyttöliittymä. Se on luokkaa.
Tehdä työtä Se luo luettelon objekteista, joita voidaan käyttää yksittäisellä indeksinumerolla. Se luo dynaamisen taulukon, jota voidaan tarvittaessa laajentaa.
Toteutus Lista lista1= new ArrayList(); ArrayList myList = new ArrayList();
Laajenna/Ota käyttöön Se laajentaa keräyskehystä. Se laajentaa AbstractList-luokkaa ja toteuttaa List-käyttöliittymän.
Peruspaketti java.util java.util
Nimiavaruus System.Collection.Generic System.Collection
Esitys Se mahdollistaa nopeamman kohteiden käsittelyn. Se tarjoaa hitaan kohteiden käsittelyn luetteloon verrattuna.
Instantiation Sitä ei voi ilmentää. Se voi olla hetkellinen

Johtopäätös

List on käyttöliittymä ja ArrayList on Java Collection -kehyksen luokka. List luo staattisen taulukon ja ArrayList dynaamisen taulukon objektien tallentamista varten. Joten Listaa ei voi laajentaa, kun se on luotu, mutta ArrayListin avulla voimme laajentaa taulukkoa tarvittaessa.

On parempi käyttää List Interfacea, jos haluat hyödyntää polymorfismia. Jatkossa, jos meidän on otettava käyttöliittymä käyttöön, meidän ei tarvitse muuttaa ohjelmaa.