List.getFirst în Java

Returnează primul sau ultimul element al listei; pe o listă goală aruncă NoSuchElementException.

Sintaxă
default E getFirst()
default E getLast()

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ă verifici isEmpty() 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.