Lista tablic w Java

โšก Inteligentne podsumowanie

Lista tablic w Java to dynamiczna, skalowalna struktura danych, ktรณra automatycznie roล›nie i maleje wraz z dodawaniem lub usuwaniem elementรณw, w przeciwieล„stwie do tablic o staล‚ej dล‚ugoล›ci. Oferuje wbudowane metody, takie jak add, remove, size i contains, umoลผliwiajฤ…ce elastycznฤ… obsล‚ugฤ™ elementรณw.

  • ๐Ÿ“ฆ Definicja ArrayList: Dynamiczna struktura danych o zmiennej dล‚ugoล›ci, ktรณra automatycznie zmienia rozmiar w miarฤ™ zmiany elementรณw.
  • ๐Ÿ†š w porรณwnaniu z tablicฤ…: W przeciwieล„stwie do tablicy o staล‚ej dล‚ugoล›ci, ArrayList moลผe rosnฤ…ฤ‡ i maleฤ‡ w czasie wykonywania.
  • โž• dodaj() i usuล„(): Dodaj elementy na koล„cu lub wedล‚ug podanego indeksu i usuล„ wedล‚ug obiektu lub indeksu.
  • ๐Ÿ“ rozmiar() i zawiera(): size() zwraca liczbฤ™ elementรณw; contains() zwraca wartoล›ฤ‡ true, jeล›li element istnieje.
  • ๐Ÿ”ข Indeks zerowy: Podobnie jak tablice, elementy ArrayList rozpoczynajฤ… siฤ™ od indeksu 0.

Lista tablic w Java

W czym jest ArrayList Java?

Lista tablic w Java to struktura danych, ktรณrฤ… moลผna rozciฤ…gnฤ…ฤ‡, aby pomieล›ciฤ‡ w sobie dodatkowe elementy i zmniejszyฤ‡ jฤ… do mniejszego rozmiaru po usuniฤ™ciu elementรณw. Jest to bardzo waลผna struktura danych, przydatna w obsล‚udze dynamicznego zachowania elementรณw.

Zastanawiasz siฤ™, jak ArrayList Java moลผe byฤ‡ przydatny, zobacz poniลผszฤ… rozmowฤ™ โ€“

Lista tablic w Java

Dla litu szacuje siฤ™ Java Przykล‚ad ArrayList, zobacz poniลผszy obrazek mฤ™ลผczyzny rozciฤ…gajฤ…cego gumkฤ™ recepturkฤ™. Rzeczywista dล‚ugoล›ฤ‡ gumki jest znacznie mniejsza, ale po rozciฤ…gniฤ™ciu moลผe siฤ™ rozciฤ…gnฤ…ฤ‡ znacznie bardziej niลผ jej rzeczywista dล‚ugoล›ฤ‡ i moลผna jej uลผywaฤ‡ do trzymania/wiฤ…zania znacznie wiฤ™kszych przedmiotรณw. Teraz rozwaลผmy nastฤ™pny obrazek, przedstawiajฤ…cy prostฤ… linฤ™, nie moลผe siฤ™ rozciฤ…gaฤ‡ i bฤ™dzie miaล‚a staล‚ฤ… dล‚ugoล›ฤ‡.

Lista tablic w Java

Moลผe rosnฤ…ฤ‡, gdy jest to wymagane, aby pomieล›ciฤ‡ elementy, ktรณre musi przechowywaฤ‡, a gdy elementy sฤ… usuwane, moลผe siฤ™ kurczyฤ‡ do mniejszego rozmiaru. Wiฤ™c poniewaลผ nasz przyjaciel ma problem z tablicฤ…, ktรณrej uลผywa, nie moลผe byฤ‡ rozszerzona lub zmniejszona, bฤ™dziemy uลผywaฤ‡ ArrayList. Tablice sฤ… jak lina pokazana na powyลผszym obrazku; bฤ™dฤ… miaล‚y staล‚ฤ… dล‚ugoล›ฤ‡, nie mogฤ… byฤ‡ rozszerzane ani zmniejszane w stosunku do oryginalnej dล‚ugoล›ci. Tak wiฤ™c nasza rozciฤ…gliwa gumka jest bardzo podobna do Array List, podczas gdy lina moลผe byฤ‡ uwaลผana za tablicฤ™. Technicznie rzecz biorฤ…c, ArrayList Java przypomina tablicฤ™ dynamicznฤ… lub tablicฤ™ o zmiennej dล‚ugoล›ci.

Zobaczmy i zrozummy poniลผszy fragment kodu Java ArrayList Skล‚adnia, ktรณra pomoลผe Ci pracowaฤ‡ z ArrayList.

ArrayList<Object> a = new ArrayList<Object>();

Metody ArrayList w Java

  • Dodaj listฤ™ tablic: Sล‚uลผy do dodawania elementรณw do listy tablic. Jeล›li ArrayList zawiera juลผ elementy, nowy element zostanie dodany po ostatnim elemencie, chyba ลผe okreล›lono indeks.
    Skล‚adnia:
    add(Object o);
  • Usuล„ listฤ™ tablic: Okreล›lony element zostanie usuniฤ™ty z listy, a jego rozmiar zostanie odpowiednio zmniejszony. Alternatywnie moลผesz takลผe okreล›liฤ‡ indeks elementu, ktรณry ma zostaฤ‡ usuniฤ™ty.
    Skล‚adnia:
    remove(Object o);
  • Java rozmiar tablicy: To da ci liczbฤ™ elementรณw na liล›cie tablic. Podobnie jak w przypadku tablic, tutaj rรณwnieลผ pierwszy element zaczyna siฤ™ od indeksu 0.
    Skล‚adnia:
    int size();
  • ArrayList zawiera: Ta metoda zwrรณci wartoล›ฤ‡ true, jeล›li lista zawiera okreล›lony element.
    Skล‚adnia:
    boolean contains(Object o);

Java Przykล‚ad listy tablic

Poniลผej znajduje siฤ™ Java Przykล‚ad listy tablic:

import java.util.ArrayList;
class Test_ArrayList {
 public static void main(String[] args) {
  //Creating a generic ArrayList
  ArrayList<String> arlTest = new ArrayList<String>();
  //Size of arrayList
  System.out.println("Size of ArrayList at creation: " + arlTest.size());
  //Lets add some elements to it
  arlTest.add("D");
  arlTest.add("U");
  arlTest.add("K");
  arlTest.add("E");

  //Recheck the size after adding elements
  System.out.println("Size of ArrayList after adding elements: " + arlTest.size());

  //Display all contents of ArrayList
  System.out.println("List of all elements: " + arlTest);

  //Remove some elements from the list
  arlTest.remove("D");
  System.out.println("See contents after removing one element: " + arlTest);

  //Remove element by index
  arlTest.remove(2);
  System.out.println("See contents after removing element by index: " + arlTest);

  //Check size after removing elements
  System.out.println("Size of arrayList after removing elements: " + arlTest.size());
  System.out.println("List of all elements after removing elements: " + arlTest);

  //Check if the list contains "K"
  System.out.println(arlTest.contains("K"));

 }
}

Wyjล›cie:

Size of ArrayList at creation: 0
Size of ArrayList after adding elements: 4
List of all elements: [D, U, K, E]
See contents after removing one element: [U, K, E]
See contents after removing element by index: [U, K]
Size of arrayList after removing elements: 2
List of all elements after removing elements: [U, K]
true

Uwaga: Dla uproszczenia elementy pokazane w powyลผszym kodzie sฤ… elementami jednoznakowymi. Moลผemy dodawaฤ‡ Stringi, liczby caล‚kowite itp.

posล‚ugiwaฤ‡ siฤ™ Java Lista tablic

FAQ

Tablica ma staล‚ฤ… dล‚ugoล›ฤ‡ ustawionฤ… podczas tworzenia, natomiast ArrayList jest dynamiczny i automatycznie zmienia rozmiar. Tablice mogฤ… przechowywaฤ‡ elementy prymitywne i obiekty; ArrayList przechowuje tylko obiekty i oferuje wbudowane metody.

ArrayList korzysta z dynamicznej tablicy, zapewniajฤ…c szybki, losowy dostฤ™p, ale wolniejsze wstawianie i usuwanie elementรณw w trakcie operacji. LinkedList korzysta z wฤ™zล‚รณw, zapewniajฤ…c szybsze wstawianie i usuwanie elementรณw, ale wolniejszy dostฤ™p oparty na indeksie.

Nie. ArrayList nie jest zsynchronizowany i nie jest bezpieczny dla wฤ…tkรณw. W przypadku dostฤ™pu wspรณล‚bieลผnego naleลผy uลผyฤ‡ Collections.synchronizedList() lub CopyOnWriteArrayList, aby uniknฤ…ฤ‡ niespรณjnoล›ci danych w programach wielowฤ…tkowych.

Asystenci AI potrafiฤ… generowaฤ‡ kod ArrayList, sugerowaฤ‡ odpowiednie metody, objaล›niaฤ‡ typy generyczne i wykrywaฤ‡ problemy, takie jak IndexOutOfBoundsException. Pomagajฤ… poczฤ…tkujฤ…cym w poprawnym i efektywnym manipulowaniu listami.

Tak. Sztuczna inteligencja moลผe zaleciฤ‡ uลผycie ArrayList, LinkedList, HashSet lub HashMap na podstawie wzorca dostฤ™pu, kolejnoล›ci i wymagaล„ wydajnoล›ciowych opisanych dla Twojego programu.

Podsumuj ten post nastฤ™pujฤ…co: