ArrayList w Javie: wprowadzenie dla początkujących [2022]
Opublikowany: 2022-11-22Tablica jest szeroko rozpowszechnioną i niezbędną strukturą danych w każdym języku programowania z jedną wadą – jej rozmiar jest stały. Zobaczmy, jak ArrayList w Javie może w tym pomóc.
Tablica może być dwojakiego rodzaju: tablica statyczna lub tablica dynamiczna. Tablicy nie można dynamicznie zwiększać w językach programowania, takich jak Java. Zamiast tego rozmiar tablicy jest deklarowany podczas inicjalizacji tablicy. Ale w wielu przypadkach może to prowadzić do wielu problemów. Aby rozwiązać ten problem, w Javie używane są ArrayLists. Rozmiar tablicy zwiększa się automatycznie, gdy element jest przekazywany do tablicy ArrayList.
W tym artykule dowiesz się o ArrayLists w Javie. Zrozumiesz podstawową różnicę między Array i ArrayList, a także dowiesz się o różnych typach ArrayLists i sposobach ich używania.
Tablica a ArrayList
Podstawowa różnica między Array a ArrayList polega na tym, że rozmiar Array jest statyczny, ale rozmiar ArrayList może być dynamiczny. Ponieważ tablica jest stała, czas iteracji po tablicy zajmuje mniej czasu niż tablica dynamiczna.
Jest też między nimi jeszcze kilka różnic.
- Tablica statyczna może być jednowymiarowa lub wielowymiarowa, ale tablica ArrayList może być tylko jednowymiarowa.
- Tablica to prymitywna struktura danych dostępna w Javie. Ale ArrayList jest częścią API Collection Framework w Javie. Jest zbudowany na wierzchu tablic.
- Możesz zadeklarować tablice z prymitywnymi typami danych. Prymitywne typy danych nie mogą być używane w ArrayList. Jeśli chcesz użyć prymitywnego typu danych, musisz użyć odpowiadającej mu klasy opakowania.
Typy ArrayLists w Javie
ArrayLists mogą być dowolnego typu. Ale będziesz musiał przekazać odpowiednią klasę opakowania, ponieważ nie możesz przekazać prymitywnych typów danych w ArrayList.
Możesz dodawać proste typy danych, takie jak liczby całkowite lub ciągi, przekazując klasy opakowujące, takie jak Integer
lub String
.
Możesz także przekazywać złożone typy, takie jak ArrayLists of ArrayLists, hashmaps itp.
Rzućmy okiem na przykład użycia niestandardowej klasy wewnątrz tablicy ArrayList.
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
W powyższym przykładzie kodu tworzony jest obiekt ArrayList typu User
. Więcej o stosowanych metodach dowiesz się z poniższego przykładu.
Tworzenie ArrayList w Javie
Zrozumiałeś już podstawy ArrayList w Javie. Przyjrzyjmy się teraz składni ArrayList, a następnie zobaczymy, jak można jej użyć w kodzie Java.
ArrayList<Type> listName = new ArrayList<>();
Powyższy fragment pokazuje składnię definiowania ArrayList. Type
definiuje typ ArrayList. Na przykład, jeśli chcesz zadeklarować ArrayList typów danych całkowitych, możesz przekazać <Integer>
. Zauważ, że nie możesz przekazać int
, ponieważ jest to prymitywny typ danych.
Będziesz także musiał zaimportować java.util.ArrayList
, aby używać ArrayList w swoich programach. Oto podstawowy przykład programu deklarującego tablicę ArrayList:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
W powyższym kodzie zadeklarowana jest tablica ArrayList o nazwie rainbow
typu String
.
Aby pracować z ArrayList, dostępnych jest wiele metod. Rzućmy okiem na kilka metod.
Metoda add
Klasa ArrayList zapewnia różne metody wykonywania operacji, takich jak dodawanie lub usuwanie elementów, pobieranie wartości, ustawianie wartości w określonej pozycji, czyszczenie tablicy ArrayList itp.
Pierwszą metodą, którą zobaczymy, jest metoda add
.
Metoda add
służy do dodawania pojedynczego elementu do ArrayList
. Poniżej przedstawiono składnię polecenia add
.
arrayList.add(int i, Element)
Zrozummy teraz składnię. Pierwszy parametr i
jest opcjonalnym parametrem reprezentującym pozycję indeksu, w której znajduje się element, który chcesz dodać. Drugi parametr Element
to element, który chcesz dodać. Spójrzmy teraz na przykład.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
rainbow.add("Violet")
dodaje element na końcu ArrayList. A rainbow.add(0, "Red")
dodaje element Red
do pozycji indeksu 0
ArrayList. Metoda add()
zwraca wartość true
, gdy element zostanie pomyślnie wstawiony.

Metoda get
Metoda get
służy do pobierania wartości z określonej pozycji z tablicy ArrayList.
arrayList.get(int i);
i
pokazane w powyższej składni to pozycja indeksu. Na przykład, jeśli chcesz pobrać element z pozycji indeksu 1
, napisz arrayList.get(1)
.
rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
Powyższy kod zwróci Violet
z rainbow
ArrayList .
set
metoda
Metoda set
służy do zastępowania wartości elementu. Na przykład, jeśli chcesz zastąpić wartość elementu na pozycji indeksu 0
, napisz rainbow.set(0, "Purple")
, zakładając, że masz ArrayList o nazwie rainbow
.
Składnia metody set
jest następująca:
arrayList.set(int i, Element);
Gdzie i
to pozycja indeksu, a Element
to wartość nowego elementu.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
W powyższym przykładzie dodajemy dwie wartości do tablicy ArrayList o nazwie rainbow
. Najpierw dodawany jest element Violet
, a następnie na pozycji 0
ArrayList dodajemy element Red
. W tym momencie kompletna lista ArrayList wygląda tak: [Red, Violet]
.
Teraz element na pozycji indeksu 1
jest zastępowany wartością Purple
przy użyciu metody set
. Po zastąpieniu wartości tablica ArrayList będzie wyglądać tak: [Red, Purple]
.
Metoda remove
Metoda remove
ArrayList służy do usuwania wartości z tablicy ArrayList. Możesz przekazać wartość lub pozycję indeksu wartości, którą chcesz usunąć. Składnia metody remove
jest przedstawiona poniżej:
arrayList.remove(Object value); // or arrayList.remove(int i);
Weźmy przykład dla lepszego zrozumienia metody. Załóżmy, że masz ArrayList o nazwie rainbow
z tymi wartościami [Violet, Red, Green]
. Teraz, jeśli chcesz usunąć Red
z ArrayList, możesz napisać rainbow.remove("Red");
. Wywołanie tej metody na rainbow
tablicy ArrayList usunie z niej element Red
.
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
Możesz także przekazać pozycję indeksu, aby usunąć element z pozycji indeksu.
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
clear
metoda
Jak sama nazwa wskazuje, metoda clear
usuwa wszystkie elementy z tablicy ArrayList. Składnia jest prosta i nie przyjmuje żadnych parametrów.
arraylist.clear()
Spójrzmy na przykład,
rainbow.clear(); System.out.println(rainbow); Output: []
Metoda clear
nie zwraca żadnej wartości. Zamiast tego czyści wartość danej ArrayList.
Metoda size
Metoda size
zwraca rozmiar podanej ArrayList. Ta metoda również nie przyjmuje żadnych parametrów. Składnia jest pokazana poniżej.
arrayList.size();
arrayList
to tutaj nazwa ArrayList. Zrozummy metodę size
na przykładzie.
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
Ta metoda zwraca wartość rozmiaru ArrayList. W powyższym przykładzie rainbow
ArrayList składa się z trzech wartości, więc metoda size
zwraca 3.
Wniosek
W tym artykule omówiono, czym jest ArrayList i czym różni się od tablicy. Zobaczyliśmy również, jak można zadeklarować i używać ArrayList przy użyciu różnych metod dostępnych dla klasy ArrayList.
Jeśli chcesz zagłębić się w naukę języka Java, sprawdź te kursy języka Java online.