Różnica między List a ArrayList w Javie

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 5 Móc 2024
Anonim
Różnica między List a ArrayList w Javie - Technologia
Różnica między List a ArrayList w Javie - Technologia

Zawartość


List i ArrayList są członkami frameworku Collection. Lista jest zbiorem elementów w sekwencji, w której każdy element jest obiektem, a do elementów można uzyskać dostęp przez pozycję (indeks). ArrayList tworzy dynamiczną tablicę obiektów, która zwiększa lub zmniejsza rozmiar w razie potrzeby. Podstawowa różnica między List a ArrayList jest taka Lista jest interfejsem i ArrayList jest klasą. Przeanalizujmy różnicę między List a ArrayList za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaListaArrayList
PodstawowyLista jest interfejsemArrayList to standardowa klasa kolekcji.
Składnialista interfejsówklasa ArrayList
Rozszerzenie / wdrożenieInterfejs listy rozszerza Framework Collection.ArrayList rozszerza AbstractList i implementuje interfejs list.
Przestrzeń nazwSystem.Collections.Generic.System.Collections.
PracaSłuży do tworzenia listy elementów (obiektów), które są powiązane z ich numerami indeksu.ArrayList służy do tworzenia dynamicznej tablicy zawierającej obiekty.


Definicja listy

Lista jest berło który rozszerza Kolekcja struktura. Interfejs listy opisuje kolekcję elementów ułożonych kolejno. Interfejs listy jest implementowany przez następujące standardowe klasy kolekcji, takie jak ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Interfejs listy ma elementy powiązane z ich numerami indeksu. Możesz uzyskać dostęp do elementu na liście według jego pozycji (indeksu) na liście. Lista utworzona za pomocą interfejsu List zaczyna się od indeksu zerowego.

Oprócz metod dziedziczonych przez Framework kolekcji interfejs List definiuje również własną metodę. Metody dodane przez interfejs listy to: dodaj (int, E) i addAll (int, Collection). Te metody dodają element do listy według ich indeksu. Metody znajdujące się na liście mogą zgłaszać wyjątek, taki jak UnsupportedOperationException jeśli metoda nie może zmodyfikować listy. Jeśli jeden obiekt na liście jest niezgodny z innym obiektem na liście, wówczas ClassCastException jest wyrzucany. Elementy zerowe nie są dozwolone na liście, jeśli spróbujesz wstawić na liście obiekt zerowy, NullPointerException Jest rzucony.


Możesz uzyskać element z listy za pomocą otrzymać() metoda. Możesz ustawić wartość elementu na liście za pomocą zestaw() metoda. Możesz także pobrać listę podrzędną z listy za pomocą metody sublist (). Wygodne staje się działanie na liście podrzędnej zamiast na liście.

Definicja ArrayList

Jedną ze standardowych klas Collection jest ArrayList, która się rozszerza AbstractList klasy, a także implementuje Lista berło. Klasa ArrayList służy do tworzenia dynamicznych tablic, które rosną i zmniejszają się w razie potrzeby. Lista utworzona za pomocą klasy ArrayList to nic innego jak tablica obiektów. W Javie standardowa tablica ma ustaloną długość, dlatego należy wcześniej znać jej rozmiar. Ale może się zdarzyć, że do czasu uruchomienia możesz nie wiedzieć, jakiej długości macierzy potrzebujesz. Dlatego w ramach Collection wprowadzono klasę ArrayList, aby rozwiązać ten problem.

ArrayList ma konstruktory, które tworzą tablicę z jej pierwotną pojemnością. Chociaż pojemność obiektu klasy ArrayList zwiększa się automatycznie, gdy elementy są dodawane do tablicy, nadal można ręcznie zwiększyć pojemność obiektu ArrayList przy użyciu metody zapewnićCapacity (). Lepiej jest początkowo zwiększyć pojemność tablicy zamiast późniejszego ponownego przydzielania pamięci. Ponieważ ponowna alokacja jest droższa niż jednorazowe przydzielanie pamięci.

  1. Jedną z najważniejszych różnic między List a ArrayList jest to, że lista jest an berło i ArrayList to standardowa kolekcja klasa.
  2. Interfejs listy rozszerza Kolekcja ramy, podczas gdy ArrayList się rozszerza AbstractList Klasa i implementuje Lista interfejsy.
  3. Przestrzeń nazw dla interfejsu listy to System.Collection.Generic natomiast przestrzeń nazw dla ArrayList to System.Collection.
  4. Interfejs listy tworzy zbiór elementów, które są przechowywane w sekwencji i są identyfikowane lub dostępne według ich numeru indeksu. Z drugiej strony ArrayList tworzy tablicę obiektów, w której tablica może dynamicznie rosnąć w razie potrzeby.

Wniosek:

ArrayList rozwiązuje problem statycznej tablicy w standardowej Javie, tzn. Tablica nie może się powiększyć po utworzeniu. Gdy tablica jest tworzona za pomocą ArrayList, tworzona jest tablica dynamiczna, która może się powiększać i zmniejszać w razie potrzeby. Standardowa klasa Collection ArrayList rozszerza interfejs List.