Ce face TreeMap.headMap
headMap(x) returnează perechile cu cheie strict mai mică decât x; tailMap(x) pe cele cu cheie mai mare sau egală. Cu al doilea argument alegi dacă limita este inclusă. Pentru un interval între două chei există subMap.
Rezultatul este o vedere a map-ului original, nu o copie: modificările se văd în ambele sensuri. Pentru o copie independentă, scrie new TreeMap<>(map.headMap(x)).
Parametri
| Parametru | Descriere |
|---|---|
toKey / fromKey |
Cheia limită (nu trebuie să existe în map). |
inclusive |
true ca limita să fie inclusă. |
Ce returnează
O vedere sortată peste o parte din map.
Exemple
Exemplul 1: Comenzi înainte și după o dată
import java.time.LocalDate;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
TreeMap<LocalDate, String> comenzi = new TreeMap<>();
comenzi.put(LocalDate.of(2026, 9, 2), "#101 Ana");
comenzi.put(LocalDate.of(2026, 9, 15), "#102 Radu");
comenzi.put(LocalDate.of(2026, 10, 1), "#103 Elena");
comenzi.put(LocalDate.of(2026, 10, 12), "#104 Mihai");
LocalDate prag = LocalDate.of(2026, 10, 1);
System.out.println("Înainte: " + comenzi.headMap(prag));
System.out.println("De la prag: " + comenzi.tailMap(prag));
System.out.println("Până la prag inclusiv: " + comenzi.headMap(prag, true).size() + " comenzi");
}
}
Rezultat
Înainte: {2026-09-02=#101 Ana, 2026-09-15=#102 Radu}
De la prag: {2026-10-01=#103 Elena, 2026-10-12=#104 Mihai}
Până la prag inclusiv: 3 comenzi
Exemplul 2: Ștergerea înregistrărilor vechi prin vedere
clear() pe vederea headMap șterge din map-ul original toate cheile mai mici decât 2025.
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
TreeMap<Integer, Integer> absolventi = new TreeMap<>();
absolventi.put(2022, 110);
absolventi.put(2023, 124);
absolventi.put(2024, 131);
absolventi.put(2025, 128);
absolventi.put(2026, 140);
absolventi.headMap(2025).clear();
System.out.println(absolventi);
System.out.println("Ultimii doi ani: " + absolventi.tailMap(2025, false));
}
}
Rezultat
{2025=128, 2026=140}
Ultimii doi ani: {2026=140}
Greșeli frecvente
- Te aștepți ca
headMap(x)să includă cheiax. Varianta cu un argument o exclude;tailMap(x)o include. - Ștergi din vedere crezând că lucrezi pe o copie. Se șterge și din original.
Comenzi înrudite
TreeMap: Dicționar care ține cheile mereu sortate și oferă căutări de tip „prima cheie”, „cea mai apropiată cheie”, „intervalul de chei”.TreeSet.headSet: headSet(x) returnează partea unui TreeSet cu elementele mai mici decât x, ca vedere legată de mulțimea originală.TreeMap.ceilingKey: ceilingKey(x) găsește cea mai mică cheie mai mare sau egală cu x, floorKey(x) cea mai mare cheie mai mică sau egală.List.subList: Returnează o vedere a unei porțiuni din listă, de la fromIndex inclusiv la toIndex exclusiv.