Różnica między tablicą a arrayList

Różnica między tablicą a arrayList

Co to jest tablica i arrayList?

Zarówno Array, jak i ArrayList to struktury danych oparte na indeksie, które są często używane w programach Java. Podsumowując, ArrayList jest wewnętrznie wspierany przez tablice, jednak zrozumienie różnicy między nimi jest kluczem do zostania wielkim programistą Java. Na początek jest to dość podstawowy krok, zwłaszcza początkujący, którzy właśnie zaczęli kodować. Podczas gdy oba są używane do przechowywania elementów w Javie, które mogą być prymitywami lub przedmiotami, mają swój uczciwy udział w różnicach pod względem funkcjonalności i wydajności. Główną różnicą między nimi jest to, że tablica jest statyczna, podczas gdy tablica ma charakter dynamiczny. Ten artykuł porównuje te dwa aspekty, dzięki czemu możesz wybrać jeden na drugim.

Różnica między tablicą a arrayList

  1. Rozmiar

Jedną z głównych i zauważalnych różnic między dwiema strukturami danych jest to, że tablica ma charakter statyczny, co oznacza, że ​​jest to typ danych o stałej długości, podczas gdy ArrayList ma charakter dynamiczny, co oznacza, że ​​jest to struktura danych o zmiennej długości. Pod względem technicznym długości tablicy nie można zmienić ani zmodyfikować po utworzeniu obiektu tablicy. Zawiera sekwencyjny zbiór elementów tego samego typu danych. Tablice w Javie działają inaczej niż działają w C/C++. ArrayList, z drugiej strony, może się zmienić rozmiar, a tablice mogą rosnąć tak, jak potrzebują. Ponieważ jest to dynamiczna struktura danych, elementy można dodać i usuwać z listy.

  1. Generyczne

Nie możesz tworzyć tablic ogólnych klas interfejsów w Javie, więc tablice i generyczne nie idą w rękę, uniemożliwiając utworzenie ogólnej tablicy z jednego podstawowego powodu, że tablice są kowarianty, podczas gdy generyczne są niezmienne. Chociaż tablica jest strukturą danych o stałej długości, zawiera obiekty tej samej klasy lub prymitywne określonego typu danych. Więc jeśli spróbujesz przechowywać inny typ danych inny niż określony podczas tworzenia obiektu tablicy, po prostu rzuca „arboStoreException”. ArrayList z drugiej strony obsługuje generyczne, aby zapewnić bezpieczeństwo typu.

  1. Prymitywy

Prymitywne typy danych, takie jak INT, podwójne, długie i char, nie są dozwolone w ArrayList. Raczej trzyma obiekty, a prymitywy nie są uważane za obiekty w Javie. Z drugiej strony tablice mogą przechowywać prymitywy, a także obiekty w Javie, ponieważ jest to jedna z najbardziej wydajnych struktur danych w Javie do przechowywania obiektów. Jest to zagregowany typ danych, który jest zaprojektowany do przechowywania obiektów, które mogą być takie same lub różne.

  1. Długość

Aby uzyskać długość tablicy, kod musi uzyskać dostęp do atrybutu długości, ponieważ należy znać długość do wykonywania operacji w tablicy. Podczas gdy ArrayList używa metody size () do określenia rozmiaru listy array. Atrybut metody size () określa liczbę elementów w tablicy, która z kolei jest pojemnością arraylist.

Na przykład:

Klasa publiczna ArrayLengthTest

public static void main (string [] args)

ArrayList arlist = new ArrayList ();

String [] items = „One”, „dwa”, „trzy”;

dla (String str: items)

Arrlist.Dodaj (str);

int rozmiar = elementy.rozmiar();

System.na zewnątrz.println (rozmiar);

  1. Realizacja

Tablica jest natywnym komponentem programowania w Javie, który jest tworzony dynamicznie i używa operatora przypisania do przechowywania elementów, a ArrayList używa atrybutu add () do wstawienia elementów. ArrayList to klasa z kolekcji Framework w Javie, która wykorzystuje zestaw określonych metod do dostępu i modyfikowania elementów. Rozmiar tablicy można zwiększyć lub zmniejszyć dynamicznie. Elementy w tablicy są przechowywane w ciągłej lokalizacji pamięci, a jej rozmiar pozostaje statyczny.

  1. Wydajność

Podczas gdy obie struktury danych zapewniają podobny rodzaj wydajności, jak tablica jest wspierana przez tablice, ma niewielką przewagę nad inną, głównie pod względem czasu procesora i zużycia pamięci. Powiedzmy, że jeśli znasz rozmiar tablicy, prawdopodobnie pójdziesz z arrayList. Jednak iterowanie tablicy jest nieco szybsze niż iterowanie nad tablicową. Jeśli program obejmuje dużą liczbę prymitywów, tablica będzie działać znacznie lepiej niż tablica, zarówno pod względem czasu, jak i pamięci. Tablice to język programowania niskiego poziomu, który można używać w implementacjach kolekcji. Jednak wydajność może się różnić w zależności od operacji, którą wykonujesz.

Tablica vs. ArrayList

Szyk ArrayList
Tablica to struktura danych o stałej długości, której długości nie można zmodyfikować po utworzeniu obiektu tablicy. ArrayList ma charakter dynamiczny, co oznacza, że ​​może rozmiar rozmiaru, aby się rozwijać w razie potrzeby.
Rozmiar tablicy pozostaje statyczny w całym programie. Rozmiar tablicy może rosnąć dynamicznie w zależności od obciążenia i pojemności.
Wykorzystuje operator przypisania do przechowywania elementów. Używa atrybutu add () do wstawienia elementów.
Może zawierać prymitywy, a także obiekty tego samego lub innego typu danych. Prymitywy nie są dozwolone w ArrayList. Może zawierać tylko typy obiektów.
Tablice i generyczne nie idą w parze. Generyczne są dozwolone w ArrayList.
Tablice mogą być wielowymiarowe. ArrayList jest jedno wymiarowy.
Jest to natywna komponent programowania, w którym elementy są przechowywane w ciągłych lokalizacjach pamięci. To klasa z ram kolekcji Java, w której obiekty nigdy nie są przechowywane w ciągłych lokalizacjach.
Zmienna długości służy do określenia długości tablicy. Metoda rozmiaru () stosuje się do określenia rozmiaru listy array.
Wymaga mniej pamięci niż ArrayList do przechowywania określonych elementów lub obiektów. Wymaga więcej pamięci niż tablica do przechowywania obiektów.
Iteracja nad tablicą jest szybsza niż iteracja nad tablicą. Iterowanie przez tablicę jest znacznie wolniejsze pod względem wydajności.

Streszczenie

Podczas gdy niektórzy mogą myśleć, że wdrażanie tablic w programie może uzyskać wyniki szybciej niż robienie tego samego z tablicami z prostego powodu, że tablice są strukturą danych na niskim poziomie, wydajność może się różnić w zależności od działania, jaką wykonujesz. Cóż, długość tablicy jest ustalona, ​​podczas gdy wielkość tablicy można zwiększyć lub zmniejszyć dynamicznie, więc ArrayList ma niewielką przewagę nad tablicą pod względem funkcjonalności. Jednak pomimo różnic mają one również pewne podobieństwa. Oba są indeksowymi strukturami danych w Javie, które umożliwiają przechowywanie obiektów i oba pozwalają zarówno na wartości zerowe, jak i duplikaty. Cóż, jeśli znasz rozmiar obiektów wcześniej, powinieneś iść z tablicą, a jeśli nie jesteś pewien rozmiaru, idź z listy array.