Ce face TreeSet.first
Pentru că un TreeSet este mereu sortat, cel mai mic și cel mai mare element se obțin direct: first() și last(). Dacă mulțimea a fost creată cu un comparator, „primul” înseamnă primul după acel comparator.
Pe o mulțime goală, ambele aruncă NoSuchElementException; verifică înainte cu isEmpty(). Variantele pollFirst() și pollLast() scot elementul din mulțime și returnează null când e goală.
Ce returnează
Cel mai mic (first) sau cel mai mare (last) element.
Exemple
Exemplul 1: Cea mai mică și cea mai mare temperatură
import java.util.List;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> temperaturi = new TreeSet<>(List.of(18, 23, 15, 27, 21));
System.out.println("Minimă: " + temperaturi.first() + " °C");
System.out.println("Maximă: " + temperaturi.last() + " °C");
}
}
Rezultat
Minimă: 15 °C
Maximă: 27 °C
Exemplul 2: Programări servite în ordinea orei
pollFirst scoate pe rând cea mai devreme oră; la final mulțimea e goală și returnează null.
import java.time.LocalTime;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<LocalTime> programari = new TreeSet<>(List.of(
LocalTime.of(11, 30), LocalTime.of(9, 0), LocalTime.of(14, 15)));
System.out.println("Ultima programare: " + programari.last());
while (!programari.isEmpty()) {
System.out.println("Acum intră cei de la " + programari.pollFirst());
}
System.out.println("pollFirst pe gol: " + programari.pollFirst());
try {
programari.first();
} catch (NoSuchElementException e) {
System.out.println("first pe gol: NoSuchElementException");
}
}
}
Rezultat
Ultima programare: 14:15
Acum intră cei de la 09:00
Acum intră cei de la 11:30
Acum intră cei de la 14:15
pollFirst pe gol: null
first pe gol: NoSuchElementException
Greșeli frecvente
- Apelezi
first()pe o mulțime care poate fi goală, fără verificare. FoloseșteisEmpty()saupollFirst(). - Declari variabila ca
Set<Integer>. Metodelefirst/lastnu există înSet; folosește tipulTreeSetsauSortedSet.
Comenzi înrudite
TreeSet: Mulțime care ține elementele mereu sortate (crescător sau după un Comparator) și oferă căutări de tip „cel mai mic”, „cel mai apropiat”.TreeSet.ceiling: ceiling(x) găsește cel mai mic element mai mare sau egal cu x; floor(x) cel mai mare element mai mic sau egal cu x.TreeMap.firstKey: firstKey() returnează cea mai mică cheie dintr-un TreeMap, lastKey() pe cea mai mare. Pe un map gol aruncă excepție.Collections.max: Returnează cel mai mare (max) sau cel mai mic (min) element dintr-o colecție, după ordinea naturală sau după un Comparator.Deque.pollFirst: pollFirst și pollLast scot primul sau ultimul element dintr-un Deque; peekFirst și peekLast doar îl arată. Pe gol dau null.