Różnice między wektorem Java a ArrayList

Jedna wspólna definicja, którą będziemy pamiętać podczas pisania o wektorze (Java). Wektory Java są powszechnie używane zamiast tablic. Możemy podać przykłady tego samego - gdy dane rosną automatycznie, będą się powiększać. Możemy stworzyć wektor z początkowym rozmiarem lub z domyślnym rozmiarem początkowym.

Zobaczymy kod domyślnego rozmiaru początkowego lub początkowego:

  • Aby utworzyć wektor o domyślnym rozmiarze początkowym
    Wektor v = nowy Vector ();
  • Aby utworzyć wektor o początkowym rozmiarze
    Wektor v = nowy Wektor (300);

Poniżej znajdują się popularne metody wektorowe:

  • dodaj (o)
  • jasny()
  • firstElement (i)
  • listIterator ()
  • rozmiar()
  • toArray (Object ())

Java ArrayList to jedna z najprostszych i najczęściej używanych struktur danych w klasach implementacji biblioteki Java API. Najważniejsze jest to, że używa dynamicznej tablicy do przechowywania elementów. Jedną z rzeczy, o których powinniśmy pamiętać podczas tworzenia tablic, są te, które mają stałą długość. Po ich utworzeniu nie możemy wprowadzać żadnych modyfikacji.

Poniżej znajdują się Konstruktory

ArrayList () - Pomaga w budowaniu pustej listy tablic

ArrayList (kolekcja c) - Pomaga w budowaniu listy elementów konstrukcyjnych w a

Wstępnie określona kolekcja

ArrayList (int pojemność) - Pomaga w tworzeniu pustej listy.

Poniżej znajdują się najczęściej stosowane metody :: ::

  • Boolean add (E obj)
  • void add (int index, E obj)
  • E get (int index)
  • boolean zawiera (Object obj)
  • boolean isEmpty ()

Java została wprowadzona z nową kolekcją API w Javie 2.0 w celu zapewnienia jednolitych klas strukturalnych. Po wprowadzeniu nowego API nastąpią zmiany w metodach. Teraz zobaczymy niektóre stare i nowe metody zmienione w momencie zmiany interfejsu API.

Stara metodaNowa metoda
Element obiektu At (int)Object get (int)
void insertElementAt (Object, int)void add (indeks, obiekt)
void addElement (Object)boolean add (Object)
void setElementAt (int)Zestaw obiektów (int, Object)
void removeElementAt (int)void remove (int)
void removeAllElements ()void clear ()

Bezpośrednie porównanie między Vector Vector a ArrayList (infografiki)

Poniżej znajduje się porównanie Top 8 między Vector Vector a ArrayList

Kluczowe różnice między wektorem Java a ArrayList

Poniżej znajdują się listy punktów, opisujące kluczowe różnice między wektorem Java a ArrayList

ArrayList jest niezsynchronizowany i nie jest bezpieczny dla wątków, ale Vector jest zsynchronizowany i ma jeden wątek do wywoływania metod na raz. Ale jeśli chodzi o bezpieczeństwo, to przypadek jednowątkowy ArrayList jest jedynym wyborem, ale jeśli pracujemy nad wielowątkowością, musimy preferować Wektory. Jeśli mamy jakiekolwiek wątpliwości lub zamieszanie w danych, możemy wybrać wektor, ponieważ w wektorze możemy ustawić wartość przyrostu.

Wektor może korzystać zarówno z interfejsu wyliczania, jak i interfejsu Iteratora do przechodzenia przez elementy, ale ArrayList może używać interfejsu Iterator tylko do przechodzenia. W wektorze Jeśli używasz opakowania liczb całkowitych, nie będziesz w stanie zmienić wartości liczb całkowitych. W wektorze dwie najczęściej stosowane metody mają Next () i Next (). ArrayLists są tworzone z początkowym rozmiarem, ponieważ jeśli obiekty dodają, zwiększy rozmiar, a obiekty usuwające rozmiar automatycznie zmniejszają.

Klasa Vector w Javie implementuje dynamiczną tablicę obiektów. Jest dokładnie identyczny z tablicą, zawiera elementy dostępne za pomocą prostego indeksu liczb całkowitych. Jednak rozmiar Vector może się zwiększać lub zmniejszać, aby pomieścić dodawanie i usuwanie elementów według potrzeb.

Zarówno Vector Vector, jak i ArrayList zapewniają tablicę o zmiennym rozmiarze, która oznacza tablicę, która może zwiększyć przestrzeń. Java zapewnia klasę wektorową, która zapewnia dynamiczny rozmiar, ogólne i użyteczne predefiniowane metody (metody te widzieliśmy już na stronie 1). Użyj tablicy, jeśli rozmiar jest stały; użyj Vector, jeśli rozmiar może się zmienić. Zarówno Java Vector, jak i ArrayList są oparte na indeksach i wewnętrznie korzystają z tablicy, a oba Java Vector vs ArrayList zachowują kolejność wstawiania elementów. Java oferuje klasę ArrayList, która zapewnia podobne funkcje jak dynamiczne, ogólne i użyteczne predefiniowane metody wektorowe.

Java Vector i ArrayList to obie klasy używane do dynamicznego wykorzystania tablic. Klasa ArrayList - E określa typ obiektów, które może przechowywać tablica. Tutaj utworzona tablica jest zmienna pierwsza i może się zwiększać lub zmniejszać w zależności od przydziału obiektów. Vector :: class Vector - E reprezentuje typ obiektu, który będzie przechowywany w tablicy.

Polecane kursy

  • Szkolenie z zakresu struktur i algorytmów danych
  • Kursy zarządzania defektami
  • Programowanie powłoki w programie Cygwin

Tabela porównawcza między wektorem Java a ArrayList

Poniżej znajduje się tabela porównawcza między Vector Vector a ArrayList

Podstawa do porównaniaWektoryArrayList
PodstawowyWektor jest klasą starszą i jest zsynchronizowanyArrayList nie jest klasą starszą i nie jest zsynchronizowany.
RozmiarPrawie podwoi rozmiar, jeśli wzrośnie łączna liczba elementówArrayList wzrośnie o 50% swojego rozmiaru, jeśli liczba elementów wzrośnie
Wzrost danychWektor rośnie i kurczy się dynamicznie, aby zachować optymalne wykorzystanie przestrzeni dyskowejArrayList rośnie i kurczy się dynamicznie, aby utrzymać optymalne wykorzystanie pamięci
BerłoWektor wykorzystuje interfejs iteratora i wyliczeniaArrayList Używa interfejsu Iterator
WystępWektor jest powolny w porównaniu do ArrayList, ponieważ jest zsynchronizowanyArrayList jest szybki z powodu braku synchronizacji
Wątek bezpiecznytakNie
Wprowadzono wWprowadzono w wersji JDK 1.0Wprowadzono w wersji JDK 1.2
Ustaw rozmiar przyrostuWektor określa wielkość przyrostuArrayList nie definiuje wielkości przyrostu

Wniosek Java Vector vs ArrayList

Podsumowując, wektor Java vs ArrayList ma zarówno zalety, jak i wady. Oba są bardzo udane na rynku. ArrayList jest ostatnim raz, jeśli porównamy z Vector. ArrayList jest preferowany, jeśli nie potrzebujesz synchronizacji. Korzystając z Vector lub ArrayList, zawsze staraj się zainicjować największą pojemność, której Twój program będzie potrzebował, ponieważ rozszerzenie tablicy jest kosztowne. ja

ArrayList jest zsynchronizowany, dlaczego, ponieważ więcej niż jeden wątek może być obsługiwany w tablicy w tym samym czasie W odniesieniu do tablicy, jeśli jeden wątek dodaje do obiektu, inny wątek usuwa obiekt z tej samej tablicy w tym samym czasie.

Zarówno Java Vector, jak i ArrayList przechowują odwołania do obiektów. Jeśli tablica jest w pełni zajęta i jeśli chcemy dodać nowy obiekt po pełnym zajęciu, teraz w obu przypadkach rozmiar wzrośnie, ale główna różnica pojawia się w ArrayList, jeśli rozmiar nie jest określony, może wzrosnąć o połowę bieżącej tablicy, ale wektor może podwoić rozmiar, jeśli nie określono wartości przyrostu.

Na koniec stwierdzam, że zawsze woli używać ArrayList. Dlaczego, ponieważ ArrayList działa szybciej i lepiej w porównaniu do Vector.

Polecany artykuł

Jest to przewodnik po różnicach między wektorem Java a ArrayList, ich znaczeniu, porównaniem bezpośrednim, kluczowymi różnicami, tabelą porównawczą i wnioskiem. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Wydajność Java a Python: jakie są różnice
  2. Scala vs Java Performance: Który jest lepszy? (Infografika)
  3. Java vs JavaScript - 8 Przydatne porównanie do nauki
  4. Java vs Python - 9 najważniejszych porównań, których musisz się nauczyć
  5. Java Heap vs Stack - 7 Niesamowite rzeczy, które powinieneś wiedzieć
  6. C # Array vs. List: Jakie są korzyści
  7. Array vs ArrayList | 6 najważniejszych różnic