logo

Różnica między Array i ArrayList

na Jawie, szyk I Lista tablic to dobrze znane struktury danych. Tablica jest podstawową funkcjonalnością udostępnianą przez Javę, natomiast Lista tablic to klasa frameworku Java Collections. To należy do Java.util pakiet.

Tablica Java

Jakiś szyk jest obiektem tworzonym dynamicznie. Służy jako kontener przechowujący stałą liczbę wartości tego samego typu. Ma ciągłą lokalizację w pamięci. Po utworzeniu tablicy nie możemy zmienić jej rozmiaru. Tablicę możemy utworzyć za pomocą następującej instrukcji:

 int array[]=new int[size]; 

Powyższa instrukcja tworzy tablicę o określonym rozmiarze. Kiedy próbujemy dodać więcej niż jego rozmiar, wyrzuca Wyjątek ArrayIndexOutOfBounds . Na przykład:

 int arr[]=new int[3]; //specified size of array is 3 //adding 4 elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; 

Klasa Java ArrayList

na Jawie, Lista tablic jest klasą frameworka Collections. Implementuje Lista, kolekcja, iterowalność, klonowanie, serializacja , I Losowy dostęp interfejsy. Rozciąga się Lista abstrakcyjna klasa.

Możemy utworzyć instancję ArrayList za pomocą następującej instrukcji:

 ArrayList arrayList=new ArrayList(); 

ArrayList jest wewnętrznie wspierana przez tablicę w Javie. Operacja zmiany rozmiaru w ArrayList spowalnia wydajność, ponieważ wymaga nowej tablicy i kopiowania zawartości ze starej tablicy do nowej. Wywołuje natywną zaimplementowaną metodę System.arraycopy(sec, srcPos, dest, destPos, długość) .

Nie możemy przechowywać typu pierwotnego w ArrayList. Przechowuje więc tylko obiekty. Automatycznie konwertuje typ pierwotny na obiekt. Na przykład utworzyliśmy obiekt ArrayList,

 ArrayList list=new ArrayList(); //object of ArrayList arrayObj.add(12); //trying to add integer primitive to the ArrayList 

JVM konwertuje go na obiekt Integer poprzez automatyczne pakowanie.

 ArrayList arrayObj=new ArrayList()//object of ArrayList arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object 

Podobieństwa

  • Zarówno Array, jak i ArrayList służą do przechowywania elementów.
  • Zarówno Array, jak i ArrayList mogą przechowywać wartości null.
  • Mogą mieć zduplikowane wartości.
  • Nie zachowują kolejności elementów.

Poniższa tabela opisuje kluczowe różnice między array a ArrayList:

Podstawa Szyk Lista tablic
Definicja Jakiś szyk jest obiektem tworzonym dynamicznie. Służy jako kontener przechowujący stałą liczbę wartości tego samego typu. Ma ciągłą lokalizację w pamięci. The Lista tablic jest klasą Java Kolekcje struktura. Zawiera popularne klasy, takie jak Wektor, HashTable , I HashMapa .
Statyczne/dynamiczne Tablica jest statyczny W rozmiarze. Lista tablic jest dynamiczny W rozmiarze.
Możliwość zmiany rozmiaru Tablica to a poprawiona długość struktura danych. ArrayList to zmienna długość struktura danych. W razie potrzeby można go samodzielnie zmienić.
Inicjalizacja Obowiązkowe jest podanie rozmiaru tablicy podczas jej inicjowania bezpośrednio lub pośrednio. Możemy utworzyć instancję ArrayList bez określania jej rozmiaru. Java tworzy ArrayList o domyślnym rozmiarze.
Wydajność To działa szybko w porównaniu do ArrayList ze względu na stały rozmiar. ArrayList jest wewnętrznie wspierana przez tablicę w Javie. Operacja zmiany rozmiaru w ArrayList spowalnia wydajność.
Typ pierwotny/ogólny Tablica może przechowywać oba obiekty I prymitywni typ. Nie możemy przechowywać prymitywny wpisz ArrayList. Automatycznie konwertuje typ pierwotny na obiekt.
Iterowanie wartości Używamy Do pętla lub dla każdego pętla do iteracji po tablicy. Używamy iterator iterować po ArrayList.
Bezpieczeństwo typu Nie możemy używać typów ogólnych razem z tablicą, ponieważ nie jest to typ tablicy, który można konwertować. ArrayList pozwala nam tylko przechowywać ogólny/ type, dlatego jest bezpieczny dla typu.
Długość Array zapewnia długość zmienna oznaczająca długość tablicy. ArrayList zapewnia rozmiar() metoda określenia rozmiaru ArrayList.
Dodawanie elementów Elementy tablicy możemy dodawać za pomocą metody zadanie operator. Java udostępnia dodać() metoda dodawania elementów do tablicy ArrayList.
Jedno/wielowymiarowe Tablica może być wielowymiarowy . ArrayList jest zawsze jednowymiarowe .

Przykład tablicy w Javie

W poniższym przykładzie po prostu utworzyliśmy tablicę o długości cztery.

 public class ArrayExample { public static void main(String args[]) { //creating an array of integer type int arr[]=new int[4]; //adding elements into array arr[0]=12; arr[1]=2; arr[2]=15; arr[3]=67; for(int i=0;i <arr.length;i++) { system.out.println(arr[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 12 2 15 67 </pre> <h2>Example of ArrayList in Java</h2> <p>In the following example, we have created an instance of ArrayList and performing iteration over the ArrayList.</p> <pre> import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } </pre> <p> <strong>Output:</strong> </p> <pre> 12.4 34.6 56.8 78.9 </pre> <hr></arr.length;i++)>

Przykład ArrayList w Javie

W poniższym przykładzie utworzyliśmy instancję ArrayList i wykonaliśmy iterację po ArrayList.

 import java.util.*; public class ArrayListExample { public static void main(String args[]) { //creating an instance of ArrayList List list = new ArrayList(); //adding element to arraylist list.add(12.4f); list.add(34.6f); list.add(56.8f); list.add(78.9f); //iteration over ArrayList using for-each loop for(Float f:list) { System.out.println(f); } } } 

Wyjście:

usuwanie ostatniego zatwierdzenia gi
 12.4 34.6 56.8 78.9