Ce face List.get
get(i) returnează elementul de la poziția i, fără să schimbe lista. Pozițiile încep de la 0, deci ultimul element este get(size() - 1). set(i, x) pune x în locul elementului de la poziția i (lungimea listei rămâne aceeași) și returnează elementul vechi.
Indexul trebuie să fie între 0 și size() - 1. Altfel apare IndexOutOfBoundsException. Pe ArrayList ambele metode sunt foarte rapide; pe LinkedList trebuie parcurse nodurile până la poziție.
Parametri
| Parametru | Descriere |
|---|---|
index |
Poziția elementului, de la 0 la size() - 1. |
element |
Pentru set: noua valoare. |
Ce returnează
get: elementul de la poziție. set: elementul care era înainte la acea poziție.
Exemple
Exemplul 1: Citire după poziție
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> luni = List.of("ianuarie", "februarie", "martie", "aprilie");
System.out.println("Prima lună: " + luni.get(0));
System.out.println("A treia lună: " + luni.get(2));
System.out.println("Ultima din listă: " + luni.get(luni.size() - 1));
for (int i = 0; i < luni.size(); i++) {
System.out.println((i + 1) + ". " + luni.get(i));
}
}
}
Rezultat
Prima lună: ianuarie
A treia lună: martie
Ultima din listă: aprilie
1. ianuarie
2. februarie
3. martie
4. aprilie
Exemplul 2: Corectarea unei note cu set
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> note = new ArrayList<>(List.of(7, 5, 9));
int veche = note.set(1, 8);
System.out.println("Nota " + veche + " a fost corectată: " + note);
for (int i = 0; i < note.size(); i++) {
note.set(i, note.get(i) + 1); // un punct bonus fiecăruia
}
System.out.println("Cu bonus: " + note);
}
}
Rezultat
Nota 5 a fost corectată: [7, 8, 9]
Cu bonus: [8, 9, 10]
Exemplul 3: Index în afara listei
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> elevi = List.of("Ana", "Mihai");
try {
System.out.println(elevi.get(2));
} catch (IndexOutOfBoundsException e) {
System.out.println("Nu există: " + e.getMessage());
}
}
}
Rezultat
Nu există: Index: 2 Size: 2
Greșeli frecvente
- Scrii
lista.get(lista.size())pentru ultimul element. Ultima poziție estesize() - 1; poți folosi șigetLast()(Java 21). - Folosești
setpe o poziție care încă nu există, ca să „adaugi”.setdoar înlocuiește; pentru adăugare foloseșteadd. - Pe
List<Integer>compari rezultatul luigetcu==:a.get(0) == b.get(0)compară obiecte și poate dafalsepentru numere mai mari de 127. Foloseșteequals.
Comenzi înrudite
List.getFirst: Returnează primul sau ultimul element al listei; pe o listă goală aruncă NoSuchElementException.List.indexOf: Returnează poziția primei (indexOf) sau ultimei (lastIndexOf) apariții a unei valori, ori -1 dacă lipsește.List.add: Adaugă un element (sau toate elementele altei colecții) la sfârșitul listei ori la o poziție dată.List.size: size spune câte elemente are lista, isEmpty verifică dacă e goală, iar clear șterge toate elementele.List.replaceAll: Înlocuiește fiecare element al listei cu rezultatul unei funcții aplicate pe el, pe loc.