Tärkein ero - ArrayList vs LinkedList
Kokoelmat ovat hyödyllisiä tietojen tallentamiseen. Normaalissa ryhmässä taulukon koko on kiinteä. Joskus vaaditaan luomaan taulukoita, jotka voivat kasvaa tarpeen mukaan. Ohjelmointikielillä, kuten Java, on kokoelmia. Se on kehys, jossa on joukko luokkia ja rajapintoja. Se toimii säiliönä elementtiryhmälle. Kokoelmien avulla voidaan tallentaa, päivittää ja noutaa joukko elementtejä. Se auttaa työskentelemään tietorakenteiden, kuten luetteloiden, joukkojen, puiden ja karttojen kanssa. Luettelo on kokoelmakehyksen käyttöliittymä. ArrayList ja LinkedList ovat kaksi luokkaa kokoelmakehyksessä. He toteuttavat keräysrajapinnan ja luettelorajapinnan. Tässä artikkelissa käsitellään ArrayListin ja LinkedListin välistä eroa. ArrayList on luokka, joka laajentaa AbstractList-tiedostoa ja toteuttaa List-käyttöliittymän, joka sisäisesti käyttää dynaamista taulukkoa tietojen elementtien tallentamiseen. LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List-, Deque- ja Queue-rajapinnat, jotka käyttävät sisäisesti kaksinkertaisesti linkitettyä luetteloa tietoelementtien tallentamiseen. Tämä on tärkein ero ArrayListin ja LinkedListin välillä.
SISÄLLYS
1. Yleiskatsaus ja tärkeimmät erot
2. Mikä on ArrayList
3. Mikä on LinkedList
4. ArrayListin ja LinkedListin väliset yhtäläisyydet
5. Vertailu vierekkäin - ArrayList vs LinkedList taulukkomuodossa
6. Yhteenveto
Mikä on ArrayList?
ArrayList-luokkaa käytetään dynaamisten taulukoiden luomiseen. Toisin kuin normaalissa taulukossa, dynaamisen taulukon kokoa ei ole vahvistettu. ArrayList-luokan avulla luotu objekti voi tallentaa joukon elementtejä luetteloon. Kapasiteetti kasvaa automaattisesti, joten ohjelmoija voi lisätä elementtejä luetteloon. ArrayList-luokka laajentaa AbstractList-luokkaa, joka toteuttaa List-käyttöliittymän. Siksi ArrayList voi käyttää luettelorajapinnan menetelmiä. Elementtien käyttämiseen käytetään get () -menetelmää. Lisää () -menetelmää voidaan käyttää elementtien lisäämiseen luetteloon. Remove () -menetelmää käytetään elementin poistamiseen luettelosta. Katso alla oleva ohjelma.
Kuva 01: Esimerkki ArrayLististä
Yllä olevan ohjelman mukaan luodaan ArrayList-objekti. Lisäämismenetelmää käyttämällä elementit voidaan lisätä dynaamisesti. Elementit "A", "B", "C", "D" ja "E" lisätään lisäysmenetelmällä. Poistomenetelmää käytetään elementin poistamiseen luettelosta. Kun välität 4 poistomenetelmälle, 4. hakemiston kirjain, joka on”E”, poistetaan luettelosta. Kun iteroidaan luettelossa for-silmukan avulla, kirjaimet A, B, C ja D tulostuvat.
Mikä on LinkedList?
Samoin kuin ArrayList, LinkedList käytetään tietojen elementtien dynaamiseen tallentamiseen. LinkedList-luokan avulla luotu objekti voi tallentaa joukon elementtejä luetteloon. Kapasiteetti kasvaa automaattisesti, joten ohjelmoija voi lisätä elementtejä luetteloon. Se käyttää sisäisesti kaksinkertaisesti linkitettyä luetteloa tietojen tallentamiseen. Kaksinkertaisesti linkitetyssä luettelossa tiedot tallennetaan solmuina. Jokainen solmu sisältää kaksi linkkiä. Ensimmäinen linkki osoittaa edelliseen solmuun. Seuraava linkki osoittaa sarjan seuraavaan solmuun.
LinkedList-luokka laajentaa AbstractSequentialList-luokkaa ja toteuttaa List-käyttöliittymän. Siksi LinkedList voi käyttää List-käyttöliittymän menetelmiä. Get () -menetelmää voidaan käyttää luettelon elementtien käyttämiseen. Lisää () -menetelmää voidaan käyttää elementtien lisäämiseen luetteloon. Remove () -menetelmää käytetään elementin poistamiseen luettelosta. Katso alla oleva ohjelma.
Kuva 02: Esimerkki LinkedList-luettelosta
Edellä mainitun ohjelman mukaan luodaan LinkedList-objekti. Lisäämismenetelmää käyttämällä elementit voidaan lisätä dynaamisesti. Elementit "A", "B", "C", "D" ja "E" lisätään lisäysmenetelmällä. Poistomenetelmää käytetään elementin poistamiseen luettelosta. Kun välität 4 poistomenetelmälle, 4. hakemiston kirjain, joka on “E”, poistetaan luettelosta. Kun iteroidaan for for -silmukalla, kirjaimet A, B, C ja D tulostuvat.
Mitkä ovat ArrayListin ja LinkedListin yhtäläisyydet?
- Sekä ArrayList että LinkedList toteuttavat List-käyttöliittymän.
- Sekä ArrayList että LinkedList voivat sisältää päällekkäisiä elementtejä.
- Sekä ArrayList että LinkedList ylläpitävät lisäysjärjestystä.
Mikä on ero ArrayListin ja LinkedListin välillä?
Erilainen artikkeli keskellä taulukkoa
ArrayList vs LinkedList |
|
ArrayList on luokka, joka laajentaa AbstractList-luetteloa ja toteuttaa List-käyttöliittymän, joka sisäisesti käyttää dynaamista taulukkoa tietoelementtien tallentamiseen. | LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List, Deque, Queue -rajapinnat, joka sisäisesti käyttää kaksinkertaisesti linkitettyä luetteloa tietoelementtien tallentamiseen. |
Elementtien käyttö | |
ArrayList-elementtien käyttö on nopeampaa kuin LinkedList-elementtien käyttö. | LinkedList-elementtien käyttö on hitaampaa kuin ArrayList-elementtien. |
Elementtien käsittely | |
ArrayList-elementtien käsittely on hitaampaa kuin LinkedList-elementtien. | LinkedList-elementtien käsittely on nopeampi kuin ArrayList-elementtien. |
Käyttäytyminen | |
ArrayList toimii luettelona. | LinkedList toimii luettelona ja jonona. |
Yhteenveto - ArrayList vs LinkedList
Kokoelmakehys mahdollistaa työskentelyn tietorakenteiden, kuten luetteloiden, puiden, karttojen ja joukkojen kanssa. Luettelo on kokoelmakehyksen käyttöliittymä. Tässä artikkelissa keskusteltiin ArrayListin ja LinkedListin eroista. ArrayList on luokka, joka laajentaa AbstractList-luetteloa ja toteuttaa luettelorajapinnan, joka sisäisesti käyttää dynaamista taulukkoa tietoelementtien tallentamiseen. LinkedList on luokka, joka laajentaa AbstractSequentialList-luetteloa ja toteuttaa List, Deque, Queue -rajapinnat, joka sisäisesti käyttää kaksinkertaisesti linkitettyä luetteloa tietoelementtien tallentamiseen. Se on ero ArrayListin ja LinkedListin välillä.