Ce face List.getFirst
getFirst() este echivalent cu get(0), iar getLast() cu get(size() - 1). Au apărut în Java 21, odată cu colecțiile secvențiale, și fac codul mai ușor de citit.
Diferența față de get: pe o listă goală aruncă NoSuchElementException (nu IndexOutOfBoundsException). Lista nu se modifică; pentru a scoate elementul folosește removeFirst / removeLast.
Ce returnează
Primul, respectiv ultimul element.
Exemple
Exemplul 1: Prima și ultima temperatură a zilei
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> temperaturi = List.of(-2, 1, 5, 7, 3);
System.out.println("Dimineața: " + temperaturi.getFirst() + " °C");
System.out.println("Seara: " + temperaturi.getLast() + " °C");
System.out.println("Diferență: " + (temperaturi.getLast() - temperaturi.getFirst()));
}
}
Rezultat
Dimineața: -2 °C
Seara: 3 °C
Diferență: 5
Exemplul 2: Verificare înainte pe o listă goală
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
public class Main {
public static void main(String[] args) {
List<String> comenzi = new ArrayList<>();
if (comenzi.isEmpty()) {
System.out.println("Nicio comandă încă.");
}
try {
comenzi.getLast();
} catch (NoSuchElementException e) {
System.out.println("getLast pe listă goală: NoSuchElementException");
}
comenzi.add("pizza");
System.out.println("Ultima comandă: " + comenzi.getLast());
}
}
Rezultat
Nicio comandă încă.
getLast pe listă goală: NoSuchElementException
Ultima comandă: pizza
Greșeli frecvente
- Apelezi
getFirst()fără să verificiisEmpty()pe o listă care poate fi goală. - Crezi că
getFirst()scoate elementul din listă. Doar îl citește; pentru scoatere existăremoveFirst().
Comenzi înrudite
List.get: get citește elementul de la o poziție; set îl înlocuiește și returnează valoarea veche.List.removeFirst: Scoate și returnează primul sau ultimul element al listei; pe o listă goală aruncă NoSuchElementException.List.addFirst: Adaugă un element la începutul (addFirst) sau la sfârșitul (addLast) listei; metode noi din Java 21.LinkedList: Listă dublu înlănțuită: adăugare și ștergere rapide la ambele capete; implementează și List, și Deque.Deque.pollFirst: pollFirst și pollLast scot primul sau ultimul element dintr-un Deque; peekFirst și peekLast doar îl arată. Pe gol dau null.