Ce face List.addFirst
Din Java 21, List face parte din familia colecțiilor secvențiale (SequencedCollection): toate au metode cu nume clare pentru capete. addFirst(e) este echivalent cu add(0, e), iar addLast(e) cu add(e).
Pe un ArrayList, addFirst mută toate elementele cu o poziție, deci este lent pe liste mari. Pe LinkedList și ArrayDeque este rapid. Pe listele nemodificabile aruncă UnsupportedOperationException.
Parametri
| Parametru | Descriere |
|---|---|
e |
Elementul de adăugat. |
Ce returnează
Nimic (void).
Exemple
Exemplul 1: Clasament: cel mai nou rezultat în față
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> stiri = new ArrayList<>();
stiri.addLast("Ninsoare la Suceava");
stiri.addLast("Trafic pe A1");
stiri.addFirst("ULTIMA ORĂ: meci câștigat");
System.out.println(stiri);
System.out.println("Prima știre: " + stiri.getFirst());
}
}
Rezultat
[ULTIMA ORĂ: meci câștigat, Ninsoare la Suceava, Trafic pe A1]
Prima știre: ULTIMA ORĂ: meci câștigat
Exemplul 2: addFirst este add(0, …)
Cele două liste ajung identice: metodele noi doar fac codul mai ușor de citit.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> a = new ArrayList<>(List.of(2, 3));
List<Integer> b = new ArrayList<>(List.of(2, 3));
a.addFirst(1);
a.addLast(4);
b.add(0, 1);
b.add(4);
System.out.println(a + " " + b + " egale: " + a.equals(b));
}
}
Rezultat
[1, 2, 3, 4] [1, 2, 3, 4] egale: true
Greșeli frecvente
- Folosești
addFirstîntr-o buclă mare pe unArrayList. Fiecare apel mută tot conținutul; adaugă la sfârșit și inversează la final, sau foloseșteArrayDeque. - Compilezi cu o versiune mai veche de Java 21: metoda nu există pe
List(doar peLinkedListșiDeque).
Comenzi înrudite
List.add: Adaugă un element (sau toate elementele altei colecții) la sfârșitul listei ori la o poziție dată.List.getFirst: Returnează primul sau ultimul element al listei; pe o listă goală aruncă NoSuchElementException.List.removeFirst: Scoate și returnează primul sau ultimul element al listei; pe o listă goală aruncă NoSuchElementException.List.reversed: Returnează o vedere a listei în ordine inversă; nu copiază elementele și urmărește modificările listei originale.LinkedList: Listă dublu înlănțuită: adăugare și ștergere rapide la ambele capete; implementează și List, și Deque.Deque.offerFirst: offerFirst adaugă un element la începutul unui Deque, offerLast la sfârșit. Returnează true dacă a reușit.