ArrayListin ja LinkedListin välinen ero

Sisällysluettelo:

ArrayListin ja LinkedListin välinen ero
ArrayListin ja LinkedListin välinen ero

Video: ArrayListin ja LinkedListin välinen ero

Video: ArrayListin ja LinkedListin välinen ero
Video: Javascript - How To Append Value To An Array From Input Text In JS [ with source code ] 2024, Marraskuu
Anonim

Avainero – ArrayList vs LinkedList

Kokoelmat ovat hyödyllisiä tietojen tallentamiseen. Normaalissa taulukossa taulukon koko on kiinteä. Joskus on tarpeen luoda taulukoita, jotka voivat kasvaa tarpeen mukaan. Ohjelmointikielillä, kuten Javalla, on kokoelmia. Se on kehys, jossa on joukko luokkia ja rajapintoja. Se toimii säiliönä elementtiryhmälle. Kokoelmat mahdollistavat elementtien tallentamisen, päivittämisen ja hakemisen. Se auttaa työskentelemään tietorakenteiden, kuten luetteloiden, joukkojen, puiden ja karttojen, kanssa. Luettelo on Collection-kehyksen käyttöliittymä. ArrayList ja LinkedList ovat kaksi luokkaa kokoelmakehyksessä. Ne toteuttavat kokoelmarajapinnan ja List-rajapinnan. Tässä artikkelissa käsitellään eroa ArrayListin ja LinkedListin välillä. ArrayList on luokka, joka laajentaa AbstractList-luetteloa ja toteuttaa List-rajapinnan, joka käyttää sisäisesti dynaamista taulukkoa tietoelementtien tallentamiseen. LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List-, Deque- ja Queue-liitännät, jotka käyttävät sisäisesti kaksoislinkitettyä listaa dataelementtien tallentamiseen. Tämä on tärkein ero ArrayListin ja LinkedListin välillä.

Mikä on ArrayList?

ArrayList-luokkaa käytetään dynaamisten taulukoiden luomiseen. Toisin kuin normaalissa taulukossa, dynaamisen taulukon koko ei ole kiinteä. ArrayList-luokassa luotu objekti saa tallentaa listaan joukon elementtejä. Kapasiteetti kasvaa automaattisesti, joten ohjelmoija voi lisätä elementtejä luetteloon. ArrayList-luokka laajentaa AbstractList-luokkaa, joka toteuttaa List-rajapinnan. Siksi ArrayList voi käyttää List-rajapinnan menetelmiä. Elementtien käyttämiseen käytetään get()-menetelmää. Add()-menetelmää voidaan käyttää elementtien lisäämiseen luetteloon. Poista()-menetelmää käytetään elementin poistamiseen luettelosta. Katso alla olevaa ohjelmaa.

Ero ArrayListin ja LinkedListin välillä
Ero ArrayListin ja LinkedListin välillä
Ero ArrayListin ja LinkedListin välillä
Ero ArrayListin ja LinkedListin välillä

Kuva 01: Esimerkki ArrayList

Yllä olevan ohjelman mukaisesti luodaan ArrayList-objekti. Lisää-menetelmällä elementtejä voidaan lisätä dynaamisesti. Elementit "A", "B", "C", "D" ja "E" lisätään add-menetelmällä. Poista-menetelmää käytetään elementin poistamiseen luettelosta. Kun siirretään poistomenetelmään 4, 4. indeksin kirjain, joka on "E", poistetaan luettelosta. Kun selaat luetteloa for-silmukalla, kirjaimet A, B, C ja D tulostuvat.

Mikä on LinkedList?

Samanlainen kuin ArrayList, LinkedList-listaa käytetään tietoelementtien tallentamiseen dynaamisesti. LinkedList-luokassa luotu objekti saa tallentaa listaan joukon elementtejä. Kapasiteetti kasvaa automaattisesti, joten ohjelmoija voi lisätä elementtejä luetteloon. Se käyttää sisäisesti kaksoislinkitettyä luetteloa tietojen tallentamiseen. Kaksoislinkitetyssä luettelossa tiedot tallennetaan solmuina. Jokainen solmu sisältää kaksi linkkiä. Ensimmäinen linkki osoittaa edelliseen solmuun. Seuraava linkki osoittaa sekvenssin seuraavaan solmuun.

LinkedList-luokka laajentaa AbstractSequentialList-luokkaa ja toteuttaa List-rajapinnan. Siksi LinkedList voi käyttää List-rajapinnan menetelmiä. Get()-menetelmää voidaan käyttää luettelon elementteihin. Add()-menetelmää voidaan käyttää elementtien lisäämiseen luetteloon. Poista()-menetelmää käytetään elementin poistamiseen luettelosta. Katso alla olevaa ohjelmaa.

Keskeinen ero ArrayListin ja LinkedListin välillä
Keskeinen ero ArrayListin ja LinkedListin välillä
Keskeinen ero ArrayListin ja LinkedListin välillä
Keskeinen ero ArrayListin ja LinkedListin välillä

Kuva 02: Esimerkki LinkedListillä

Yllä olevan ohjelman mukaisesti luodaan LinkedList-objekti. Lisää-menetelmällä elementtejä voidaan lisätä dynaamisesti. Elementit "A", "B", "C", "D" ja "E" lisätään add-menetelmällä. Poista-menetelmää käytetään elementin poistamiseen luettelosta. Kun siirretään 4 poistomenetelmälle, 4. indeksin kirjain, joka on "E", poistuu luettelosta. Kun iteroidaan for-silmukalla, kirjaimet A, B, C ja D tulostuvat.

Mitä yhtäläisyyksiä ArrayListin ja LinkedListin välillä on?

  • Sekä ArrayList että LinkedList toteuttavat List-rajapinnan.
  • Sekä ArrayList että LinkedList voivat sisältää päällekkäisiä elementtejä.
  • Sekä ArrayList että LinkedList ylläpitävät lisäysjärjestystä.

Mitä eroa ArrayListillä ja LinkedListillä on?

ArrayList vs LinkedList

ArrayList on luokka, joka laajentaa AbstractList-luetteloa ja toteuttaa List-rajapinnan, joka käyttää sisäisesti dynaamista taulukkoa tietoelementtien tallentamiseen. LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List-, Deque- ja Queue-liitännät, joka käyttää sisäisesti kaksoislinkitettyä luetteloa dataelementtien tallentamiseen.
Elementtien käyttö
ArrayListin elementtien käyttö on nopeampaa kuin LinkedListin. LinkedListin elementtien käyttö on hitaampaa kuin ArrayListin.
Elementtien manipulointi
ArrayListin elementtien manipulointi on hitaampaa kuin LinkedListin. LinkedListin elementtien manipulointi on nopeampaa kuin ArrayListin.
Käyttäytyminen
ArrayList toimii listana. LinkedList toimii luettelona ja jonona.

Yhteenveto – ArrayList vs LinkedList

Kokoelmakehys mahdollistaa tietorakenteiden, kuten luetteloiden, puiden, karttojen ja joukkojen, kanssa työskentelyn. Luettelo on kokoelmakehyksen käyttöliittymä. Tässä artikkelissa käsiteltiin eroa ArrayListin ja LinkedListin välillä. ArrayList on luokka, joka laajentaa AbstractList-luetteloa ja toteuttaa List-rajapinnan, joka käyttää sisäisesti dynaamista taulukkoa tietoelementtien tallentamiseen. LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List-, Deque- ja Queue-liitännät, joka käyttää sisäisesti kaksoislinkitettyä listaa tietoelementtien tallentamiseen. Tämä on ero ArrayListin ja LinkedListin välillä.

Suositeltava: