LinkedList vs ArrayList w Javie: Poznaj główne różnice



Ten artykuł LinkedList vs ArrayList daje właściwe porównanie między listami, które implementują interfejs list

Lista w Javie jest podinterfejsem który zapewnia optymalne rozwiązania z takimi pojęciami, jak dostęp pozycyjny, iteracja i tak dalej. W tym artykule omówię główne różnice między interfejsem listy LinkedList a ArrayList w Javie.

Poniżej znajdują się tematy poruszone w tym artykule:





Zaczynajmy!

Co to jest LinkedList?

Po tablice , drugą najpopularniejszą strukturą danych jest zdecydowanie plik . Lista połączona to liniowa struktura danych utworzona przez rozszerzeniełańcuch węzłów, w którym każdy węzeł zawiera wartość iwskaźnikdo następnego węzła w łańcuchu.Również tOstatnie łącze na liście połączonych wskazuje na wartość null, wskazując koniec łańcucha.Element na połączonej liście nosi nazwę węzeł .Pierwszy węzeł na liście nosi nazwę głowa .Ostatni węzeł nosi nazwę ogon .



Pozwólcie, że podam wam prosty przykład: Wyobraź sobie łańcuch spinaczy, które są ze sobą połączone. Możesz łatwo dodać kolejny spinacz na górze lub na dole. Łatwo jest też wstawić jeden pośrodku. Wszystko, co musisz zrobić, to po prostu przerwać łańcuch na środku, dodać nowy spinacz, a następnie ponownie podłączyć drugą połowę. Lista połączona jest podobna do tej.

Przykład:

pakiet MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * LinkedList Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) to używany do dodawania * pozycji do połączonej listy * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Zawartość listy połączonej:' + l_list) / * Dodaj pozycje na określonej pozycji * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Treść po edycji: '+ l_list) / * Dodaj pierwszą i ostatnią pozycję * / l_list.addFirst (' Pierwszy kurs ') l_list.addLast (' Ostatni kurs ') System.out.println (' l_list Zawartość po dodaniu: '+ l_list) / * Pobierz i ustaw pozycje na liście * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content po zaktualizowaniu pierwszej pozycji: '+ l_list) / * Usuń z pozycji * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList po usunięciu pozycji na drugiej i trzeciej pozycji' + l_list) / * Usuń pierwszą i ostatnią pozycję * / l_list.removeFirst () l_list.removeLast () System.out.println ('Ostateczna zawartość po usunięciu pierwszej i ostatniej pozycji : '+ l_list) / * Iterowanie połączonej listy * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lista wyświetlana przy użyciu iteratora: ') while (itrator.hasNext ()) {System.out.println (itrator .Kolejny()) } } }

Wynik:



Zawartość listy połączonej = {Java, Python, Scala, Swift} Treść po edycji = {Java, Python, JavaScript, Kotlin, Scala, Swift} Treść po dodaniu = {First Course, Java, Python, JavaScript, Kotlin, Scala, Swift, Ostatni kurs} Pierwszy przedmiot = {Pierwszy kurs} Treść po aktualizacji pierwszego elementu = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Ostatni kurs} Treść po usunięciu elementu na drugiej i trzeciej pozycji = {Java9, Python, Kotlin, Scala, Swift, Last Course} Ostateczna zawartość po usunięciu pierwszego i ostatniego elementu = {Python, Kotlin, Scala, Swift} Lista wyświetlana za pomocą iteratora = Python Kotlin Scala Swift

Teraz przejdźmy do następnego tematu.

Co to jest ArrayList?

jest implementacją interfejsu listy, w którym elementy mogą być dynamicznie dodawane lub usuwane z odpowiedniej listy. W tym przypadku rozmiar listy jest zwiększany dynamicznie, jeśli elementy są dodawane więcej niż rozmiar początkowy lub rzeczywisty. Chociaż może być wolniejszy niż standardowe tablice, może być pomocny w programach, w których wymagane jest wiele manipulacji w tablicy.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList służy do następujących celów:

przykład tablicy obiektów java
  • ArrayList w Javie jest używany do sklep dynamiczna kolekcja elementów.
  • Jest inicjowany przez rozmiar. Jednak rozmiar może wzrosnąć, jeśli kolekcja wzrośnie i zmniejszy się, jeśli obiekty zostaną usunięte z .
  • Ponadto ArrayList umożliwia losowy dostęp do listy.

Przejdźmy dalej i wskażmy podobieństwa między LinkedList i ArrayList w Javie.

Podobieństwa między LinkedList i ArrayList

Oto godne uwagi podobieństwa między LinkedList i ArrayList w Javie.

  • ArrayList i LinkedList to implementacje Interfejs listy .
  • Zarówno ArrayList, jak i LinkedList zachowują kolejność wstawiania elementów. Oznacza to, że podczas wyświetlania elementów listy zestaw wyników miałby tę samą kolejność, w jakiej elementy zostały wstawione do listy.
  • Klasy TheseArrayList i LinkedList są niezsynchronizowane i można je zsynchronizować jawnie przy użyciu CollectionsSynchronizedList metoda.
  • Iterator i ListIterator zwracane przez te klasy działają bezawaryjnie. Oznacza to, że jeśli lista zostanie strukturalnie zmodyfikowana w dowolnym momencie po utworzeniu iteratora, z wyjątkiemwłasne metody usuwania lub dodawania iteratora, iterator wyrzuci plik ConcurrentModificationException .

Różnice między LinkedList i ArrayList

Najpierw przyjrzyjmy się parametrom porównywania LinkedList i ArrayList w Javie.

Parametry do porównania LinkedList i ArrayList w Javie:

  • Operacja
  • Realizacja
  • Proces
  • Pamięć
  1. Operacje

Operacje wstawiania, dodawania i usuwania elementu są szybsze w pliku Połączona lista ponieważ nie musimy zmieniać rozmiaru tak, jak robimy to w ArrayList.

2. Realizacja

ArrayList jest oparty na koncepcja tablicy dynamicznie zmienianej, natomiast Połączona lista opiera się na implementacji listy podwójnie połączonej

3. Proces

DO Połączona lista klasa może być używana jako lista i kolejka, ponieważ implementuje interfejsy List i Deque, podczas gdy ArrayList może implementować tylko listy.

Cztery. Pamięć

DO Połączona lista zużywa więcej pamięci niż plik ArrayList ponieważ każdy węzeł w Połączona lista przechowuje dwa odniesienia, podczas gdy ArrayList zawiera tylko dane i ich indeks

LinkedList vs ArrayList w Javie

ParametryPołączona listaArrayList
Operacje

Operacje wstawiania, dodawania i usuwania są znacznie szybsze

Porównywalnie operacjesą tu powolne

Realizacja

Następuje podwójnie połączona implementacja listy

Jest zgodny z koncepcją tablicy o dynamicznie zmienianej wielkości

Proces

Klasa LinkedList może być listą i kolejką, ponieważ implementuje interfejsy List i Deque

różnica między agile i devops

Klasa ArrayList może być listą, ponieważ implementuje tylko listy

Pamięć

Zużycie pamięci w LinkedList jest wysokie

Mniej w porównaniu do LinkedList

To wszystko ludzie! To prowadzi nas do końca tego artykułu na temat LinkedList vs ArrayList w Javie. Mam nadzieję, że wiecie jasno, czego uczy ten artykuł.

Jeśli znalazłeś ten artykuł na temat „LinkedList vs ArrayList w Javie”, sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży i opracowujemy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java.