logo

Różnica między listą a ArrayList

Kolekcja Java zapewnia architekturę do obsługi grupy obiektów. Kolekcja oznacza pojedynczą jednostkę obiektów. Pozwala nam przechowywać i manipulować grupą obiektów jako pojedynczą jednostką.

Za pomocą frameworka kolekcji możemy z łatwością wykonywać wiele operacji, takich jak wyszukiwanie, sortowanie, wstawianie, usuwanie i manipulowanie grupą obiektów.

Framework Java Collection udostępnia kilka interfejsów i klas. Interfejsy zawierają Ustawić, Lista , Kolejka, Deque , a klasy zawierają Lista tablic , Wektor , Połączona lista , Zestaw skrótów , Zestaw drzew , LinkedHashSet , I Kolejka priorytetowa .

unikalny klucz mysql

W tej sekcji wyróżnimy dwa elementy Ramy kolekcji , czyli List i ArrayList. Lista jest interfejsem, a ArrayList jest klasą.

Różnica między listą a ArrayList

Interfejs listy

Lista jest interfejsem podrzędnym frameworka Collection, który pozwala nam zachować uporządkowaną kolekcję obiektów. Za pomocą Listy możemy przechowywać zduplikowane wartości i elementy null. Zapewnia opartą na indeksie metodę wykonywania operacji wstawiania, usuwania, wyszukiwania i aktualizacji obiektów.

Interfejs List znajduje się w pakiecie java.util. Implementuje klasy ArrayList, LinkedList, Stack i Vector. Jest to także baza klas ListIterator, za pomocą których możemy iterować Listę w przód i w tył.

Interfejs listy zapewnia dostęp pozycyjny i wstawianie elementów oraz zachowuje kolejność wstawiania. Instancję Listy można utworzyć za pomocą klas implementujących.

Implementacja listy:

Możemy zaimplementować interfejs List, używając ArrayList, LinkedList, Vector i Klasy stosowe .

Aby utworzyć instancję interfejsu List, możemy użyć następujących składni:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Rozważ poniższy przykład listy:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Wyjście:

Java przerwała pętlę
 [Hello, Java, Tpoint] 

Klasa ArrayList

Klasa ArrayList wykorzystuje tablicę dynamiczną do przechowywania elementów. Klasa ArrayList działa jak tablica, ale nie ma w niej ograniczenia rozmiaru. Elementy możemy dodawać lub usuwać kiedy tylko chcemy. Możemy przechowywać zduplikowany element za pomocą klasy ArrayList. Wewnętrznie zarządza kolejnością wstawiania.

Klasa ArrayList jest znacznie bardziej elastyczna niż tradycyjna tablica. Implementuje interfejs List, aby korzystać ze wszystkich metod interfejsu List. Odbywa się to w Jawa pakiet .util.

Klasa ArrayList dziedziczy klasę AbstractList i implementuje interfejs list. Dostęp do jego elementów jest losowy. Nie można go używać w przypadku typów pierwotnych, takich jak int, char itp.; dla tych typów danych potrzebujemy klasy opakowania.

Implementacja ArrayList:

Klasa ArrayList dziedziczy wszystkie metody klasy AbstractList i implementuje interfejs List.

Klasę ArrayList można zadeklarować w następujący sposób:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList można zdefiniować w następujący sposób:

 ArrayList myList = new ArrayList(); 

Rozważ poniższy przykład ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Wyjście:

 [Hello, Java, Tpoint] 

Niektóre kluczowe różnice między interfejsem listy a klasą ArrayList

Niektóre główne różnice między listami i ArrayList są następujące:

  • Jedną z głównych różnic jest to List to interfejs, a ArrayList to klasa frameworku Kolekcji Java.
  • The Lista rozszerza strukturę kolekcji , stosunkowo ArrayList rozszerza klasę AbstractList i implementuje interfejs List .
  • Przestrzeń nazw List i ArrayList to odpowiednio System.Collection.Generic i System Collection.
  • Lista przechowuje elementy w sekwencji i jest identyfikowana poprzez indywidualny numer indeksu. Dla porównania ArrayList przechowuje elementy w tablicy dynamicznej; może rosnąć, gdy jest to wymagane.

Kiedy zdefiniujemy Listę w następujący sposób:

 List myList = new ArrayList(); 

Oznacza to, że możemy wywoływać metody i elementy referencyjne tylko z interfejsu List.

Jeśli zdefiniujemy ArrayList w następujący sposób:

jak sprawdzić rozmiar ekranu
 ArrayList myList = new ArrayList(); 

Oznacza to, że możemy wywoływać metody dostępne w ArrayList i używać jej elementów oprócz Listy.

Rozważ poniższą tabelę, aby zapoznać się z niektórymi porównaniami głów między listami i ArrayList:

Baza porównawcza Lista Lista tablic
Ogólny To jest interfejs. To jest klasa.
Praca Tworzy listę obiektów, do których można uzyskać dostęp poprzez indywidualny numer indeksu. Tworzy dynamiczną tablicę, którą można rozszerzyć w razie potrzeby.
Realizacja Lista lista1= nowa ArrayList(); ArrayList mojaList = nowa ArrayList();
Rozszerz/Wdrażaj Rozszerza ramy kolekcji. Rozszerza klasę AbstractList i implementuje interfejs List.
Pakiet podstawowy java.util java.util
Przestrzeń nazw System.Kolekcja.Ogólna System.Kolekcja
Wydajność Zapewnia szybszą manipulację obiektami. Zapewnia powolną manipulację obiektami w porównaniu do listy.
Instancja Nie można go utworzyć. Może to być instancja

Wniosek

Lista jest interfejsem, a ArrayList jest klasą frameworku Java Collection. Lista tworzy tablicę statyczną, a ArrayList tworzy dynamiczną tablicę do przechowywania obiektów. Zatem listy nie można rozwinąć po jej utworzeniu, ale używając ArrayList, możemy w razie potrzeby rozszerzyć tablicę.

Jeśli chcesz skorzystać z polimorfizmu, lepiej jest użyć interfejsu listy. W przyszłości, jeśli będziemy musieli wdrożyć interfejs, nie będziemy musieli zmieniać programu.