Ce face Deque.offerFirst
offerFirst(x) pune x în față, offerLast(x) îl pune la final. Ambele returnează true; doar o coadă cu capacitate limitată și plină (de exemplu LinkedBlockingDeque cu limită) returnează false.
Variantele addFirst/addLast fac același lucru, dar aruncă IllegalStateException când coada este plină. offerLast este echivalent cu offer, iar addFirst cu push.
Parametri
| Parametru | Descriere |
|---|---|
e |
Elementul adăugat (fără null la ArrayDeque). |
Ce returnează
true dacă elementul a fost adăugat.
Exemple
Exemplul 1: Clienții VIP trec în față
import java.util.ArrayDeque;
import java.util.Deque;
public class Main {
public static void main(String[] args) {
Deque<String> coada = new ArrayDeque<>();
String[][] sosiri = {{"Ana", "normal"}, {"Radu", "VIP"}, {"Elena", "normal"}, {"Mihai", "VIP"}};
for (String[] s : sosiri) {
if (s[1].equals("VIP")) {
coada.offerFirst(s[0]);
} else {
coada.offerLast(s[0]);
}
}
System.out.println(coada);
}
}
Rezultat
[Mihai, Radu, Ana, Elena]
Exemplul 2: Deque cu capacitate limitată
import java.util.concurrent.LinkedBlockingDeque;
public class Main {
public static void main(String[] args) {
LinkedBlockingDeque<Integer> d = new LinkedBlockingDeque<>(2);
System.out.println(d.offerFirst(1));
System.out.println(d.offerLast(2));
System.out.println(d.offerLast(3));
System.out.println(d);
}
}
Rezultat
true
true
false
[1, 2]
Greșeli frecvente
- Crezi că
offerFirstînlocuiește primul element. Îl împinge mai la dreapta și adaugă unul nou. - Ignori rezultatul
falsela o coadă limitată. Elementul nu a fost adăugat.
Comenzi înrudite
Deque: Coadă cu două capete: adaugi și scoți atât la început, cât și la sfârșit. Se folosește și ca stivă, și ca coadă.Deque.pollFirst: pollFirst și pollLast scot primul sau ultimul element dintr-un Deque; peekFirst și peekLast doar îl arată. Pe gol dau null.Deque.push: Folosește un Deque ca stivă: push pune un element deasupra, pop îl scoate pe cel de deasupra, peek îl arată fără să-l scoată.Queue.offer: offer pune un element la coada cozii, poll îl scoate pe primul (sau dă null), peek îl arată pe primul fără să-l scoată.List.addFirst: Adaugă un element la începutul (addFirst) sau la sfârșitul (addLast) listei; metode noi din Java 21.