TreeSet.first în Java

first() returnează cel mai mic element al unui TreeSet, last() pe cel mai mare. Aruncă excepție dacă mulțimea e goală.

Sintaxă
E first()
E last()

E pollFirst()   // scoate și returnează cel mai mic
E pollLast()

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ște isEmpty() sau pollFirst().
  • Declari variabila ca Set<Integer>. Metodele first/last nu există în Set; folosește tipul TreeSet sau SortedSet.

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.