Ce face List.removeFirst
removeFirst() face același lucru ca remove(0), iar removeLast() ca remove(size() - 1): elementul este scos din listă și returnat. Metodele au apărut în Java 21, pentru toate colecțiile secvențiale.
Pe ArrayList, removeLast este rapid, iar removeFirst mută toate celelalte elemente. Pe listă goală, ambele aruncă NoSuchElementException.
Ce returnează
Elementul scos.
Exemple
Exemplul 1: Anularea ultimei acțiuni (undo)
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> actiuni = new ArrayList<>();
actiuni.add("scrie „Bună”");
actiuni.add("scrie „ziua”");
actiuni.add("șterge un cuvânt");
String anulata = actiuni.removeLast();
System.out.println("Anulat: " + anulata);
System.out.println("Rămase: " + actiuni);
}
}
Rezultat
Anulat: șterge un cuvânt
Rămase: [scrie „Bună”, scrie „ziua”]
Exemplul 2: Procesarea unei liste de la început
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> sarcini = new ArrayList<>(List.of("spală vasele", "scoate câinele", "temele la mate"));
while (!sarcini.isEmpty()) {
System.out.println("Fac: " + sarcini.removeFirst());
}
System.out.println("Gata, lista e goală: " + sarcini);
}
}
Rezultat
Fac: spală vasele
Fac: scoate câinele
Fac: temele la mate
Gata, lista e goală: []
Greșeli frecvente
- Apelezi
removeFirst()într-o buclă fără condiția!lista.isEmpty(). - Folosești
removeFirst()pe unArrayListfoarte mare ca pe o coadă: fiecare apel mută toate elementele. Pentru cozi alegeArrayDeque.
Comenzi înrudite
List.getFirst: 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.List.remove: Șterge elementul de la o poziție sau prima apariție a unei valori; elementele de după se mută la stânga.Deque.pollFirst: pollFirst și pollLast scot primul sau ultimul element dintr-un Deque; peekFirst și peekLast doar îl arată. Pe gol dau null.ArrayDeque: Implementarea recomandată pentru cozi și stive: un array circular care crește automat, rapid la ambele capete.