Różnica między ArrayList a LinkedList

Kluczowa różnica - ArrayList vs. Połączona lista
 

Kolekcje są przydatne do przechowywania danych. W normalnej tablicy rozmiar tablicy jest stały. Czasami konieczne jest tworzenie tablic, które mogą rosnąć w miarę potrzeb. Języki programowania, takie jak Java, mają kolekcje. Jest to framework z zestawem klas i interfejsów. Służy jako pojemnik na grupę elementów. Kolekcje umożliwiają przechowywanie, aktualizowanie, pobieranie zestawu elementów. Pomaga w pracy ze strukturami danych, takimi jak listy, zestawy, drzewa i mapy. Lista jest interfejsem frameworka Collection. ArrayList i LinkedList to dwie klasy w ramach kolekcji. Implementują interfejs kolekcji i interfejs listy. W tym artykule omówiono różnicę między ArrayList i LinkedList. ArrayList to klasa, która rozszerza AbstractList i implementuje interfejs List, który wewnętrznie używa dynamicznej tablicy do przechowywania elementów danych. LinkedList to klasa, która rozszerza AbstractSequentialList i implementuje interfejsy List, Deque i Queue, które wewnętrznie używają podwójnie połączonej listy do przechowywania elementów danych. To jest kluczowa różnica między ArrayList i LinkedList.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest ArrayList
3. Co to jest LinkedList
4. Podobieństwa między ArrayList i LinkedList
5. Porównanie obok siebie - ArrayList vs LinkedList w formie tabelarycznej
6. Podsumowanie

Co to jest ArrayList?

Klasa ArrayList służy do tworzenia tablic dynamicznych. W przeciwieństwie do normalnej tablicy rozmiar tablicy dynamicznej nie jest stały. Obiekt utworzony za pomocą klasy ArrayList może przechowywać zestaw elementów na liście. Pojemność wzrasta automatycznie, więc programista może dodawać elementy do listy. Klasa ArrayList rozszerza klasę AbstractList, która implementuje interfejs List. Dlatego metody interfejsu List mogą być używane przez ArrayList. Aby uzyskać dostęp do elementów, używana jest metoda get (). Do dodania elementów do listy można użyć metody add (). Metoda remove () służy do usuwania elementu z listy. Zobacz poniższy program.

Rysunek 01: Przykład ArrayList

Zgodnie z powyższym programem tworzony jest obiekt ArrayList. Przy użyciu metody add elementy można dodawać dynamicznie. Elementy „A”, „B”, „C”, „D” i „E” są dodawane przy użyciu metody add. Metoda remove służy do usuwania elementu z listy. Przy przekazywaniu 4 do metody remove litera z czwartego indeksu, czyli „E”, jest usuwana z listy. Podczas iteracji listy za pomocą pętli for, drukowane będą litery A, B, C i D..

Co to jest LinkedList?

Podobnie jak ArrayList, LinkedList służy do dynamicznego przechowywania elementów danych. Obiekt utworzony za pomocą klasy LinkedList może przechowywać zestaw elementów na liście. Pojemność wzrasta automatycznie, więc programista może dodawać elementy do listy. Wykorzystuje wewnętrznie podwójnie połączoną listę do przechowywania danych. Na podwójnie połączonej liście dane są przechowywane jako węzły. Każdy węzeł zawiera dwa łącza. Pierwsze łącze wskazuje na poprzedni węzeł. Następne łącze wskazuje następny węzeł w sekwencji.

Klasa LinkedList rozszerza klasę AbstractSequentialList i implementuje interfejs List. Dlatego metody interfejsu List mogą być używane przez LinkedList. Do uzyskania dostępu do elementów listy można użyć metody get (). Do dodania elementów do listy można użyć metody add (). Metoda remove () służy do usuwania elementu z listy. Zobacz poniższy program.

Rysunek 02: Przykład z LinkedList

Zgodnie z powyższym programem tworzony jest obiekt LinkedList. Przy użyciu metody add elementy można dodawać dynamicznie. Elementy „A”, „B”, „C”, „D” i „E” są dodawane przy użyciu metody add. Metoda remove służy do usuwania elementu z listy. Przy przekazywaniu 4 do metody remove litera w czwartym indeksie, czyli „E”, usuwa się z listy. Podczas iteracji za pomocą pętli for drukowane będą litery A, B, C i D..

Jakie są podobieństwa między ArrayList i LinkedList?

  • Zarówno ArrayList, jak i LinkedList implementują interfejs List.
  • Zarówno ArrayList, jak i LinkedList mogą zawierać zduplikowane elementy.
  • Zarówno ArrayList, jak i LinkedList zachowują kolejność wstawiania.

Jaka jest różnica między ArrayList a LinkedList?

ArrayList vs LinkedList

ArrayList to klasa, która rozszerza AbstractList i implementuje interfejs List, który wewnętrznie używa dynamicznej tablicy do przechowywania elementów danych. LinkedList to klasa rozszerzająca AbstractSequentialList i implementująca interfejsy List, Deque, Queue, która wewnętrznie używa podwójnie połączonej listy do przechowywania elementów danych.
 Dostęp do elementów
Dostęp do elementów ArrayList jest szybszy niż w przypadku LinkedList. Dostęp do elementów LinkedList jest wolniejszy niż ArrayList.
Manipulowanie elementami
Manipulowanie elementami ArrayList jest wolniejsze niż w przypadku LinkedList. Manipulowanie elementami LinkedList jest szybsze niż ArrayList.
 Zachowanie
ArrayList działa jako lista. LinkedList działa jako lista i kolejka.

streszczenie - ArrayList vs Połączona lista

Struktura gromadzenia umożliwia pracę ze strukturami danych, takimi jak listy, drzewa, mapy i zestawy. Lista jest interfejsem frameworka kolekcji. W tym artykule omówiono różnicę między ArrayList a LinkedList. ArrayList to klasa, która rozszerza AbstractList i implementuje interfejs List, który wewnętrznie używa dynamicznej tablicy do przechowywania elementów danych. LinkedList to klasa, która rozszerza AbstractSequentialList i implementuje interfejsy List, Deque, Queue, która wewnętrznie używa podwójnie połączonej listy do przechowywania elementów danych. Na tym polega różnica między ArrayList i LinkedList.

Odniesienie:

1. Wprowadzenie do listy powiązanej | Samouczek struktury danych | Studytonight. Dostępny tutaj
2. „LinkedList w Javie - javatpoint.”, The Point, dostępny tutaj
3. „Klasa Java ArrayList - javatpoint.” The Point, dostępny tutaj