Клас TreeMap реалізує інтерфейс Map з використанням дерева.
Це забезпечує ефективне зберігання пар ключ/значення у порядку зростання ключа та швидке вилучення даних. На відміну від HashMap, TreeMap гарантують, що її елементи будуть відсортовані в порядку зростання ключа.
Конструктори TreeMap-
TreeMap() — cтворює порожнє дерево для упорядкування за природним порядком ключів.
-
TreeMap(c) — cтворює порожнє дерево для упорядкування з використанням порівнювача c.
-
TreeMap(m) — cтворює та ініціалізує TreeMap елементами відображення m (клас Map), які буде упорядковано згідно з природним порядком ключів.
-
TreeMap(s) — cтворює та ініціалізує TreeMap елементами s (клас SortedMap), упорядкованими у тому самому порядку, що й s.
Методи TreeMap
(додатково до методів, успадкованих від батьківських класів)-
clear() — видаляє всі пари.
-
clone() — повертає копію без дублюванняелементів.
-
comparator() — повертає використовуваний порівнювач ключів (Comparator) або null, якщо використано природний порядок ключів.
-
containsKey(k) — повертає true при наявності ключа k, інакше повертає false.
-
containsValue(v) — повертає true при наявності значення v, інакше повертає false.
-
entrySet() — повертає подання відображення множиною (клас Set).
-
firstKey() — повертає найменший об'єкт-ключ.
-
get(k) — повертає значення для об'єкта-ключа k.
-
headMap(k) — повертає подання упорядкованою множиною (клас SortedMap) тієї частини, ключі якої строго менші, ніж об'єкт k.
-
keySet() — повертає множину (клас Set) кючів.
-
lastKey() — повертає найбільший об'єкт-ключ.
-
put(k, v) — пов'язує об'єкт-ключ k з об'єктом-значенням v, повертає те значення, яке з яким був зв'язок до цього.
-
putAll(m) — копіює всі пари з m (клас Map).
-
remove(k) — видаляє пару з ключем k, повертає значення з цієї пари.
-
size() — повертає кількість (тип int) пар ключ-значення.
-
subMap(j, k) — повертає упорядковану множину (клас SortedMap) — частину відображення, ключі якого змінюються від j включно до k виключно.
-
tailMap(j) — повертає упорядковану множину (клас SortedMap) — частину цього відображення, ключі якого більші або рівні j.
-
values() — повертає колекцію (Collection) значень.
Див. приклад кодуpackage work;
import java.util.*;
public class Work
{ public static void main(String args[])
{ TreeMap t = new TreeMap();
t.put("e", 0);
t.put("d", 1);
t.put("c", 2);
t.put("b", 3);
t.put("a", 4);
System.out.println(t.size()+"\n"+t+"\n"+
t.keySet()+"\n"+t.values()+ "\n"+
t.firstKey()+" "+t.lastKey()+"\n"+
t.subMap("b","d")+" "+t.tailMap("c"));
if (t.containsKey("c")) {System.out.println("Є ключ \"с\"");}
else {System.out.println("Ключа \"с\" немає");}
if (t.containsKey("x")) {System.out.println("Є ключ \"x\"");}
else {System.out.println("Ключа \"x\" немає");}
if (t.containsValue(4)) {System.out.println("Є значення 4");}
else {System.out.println("Значення 4 немає");}
if (t.containsValue(5)) {System.out.println("Є значення 5");}
else {System.out.println("значення 5 немає");}
System.out.println("Вилучено пару з ключем \"c\" і значенням "+t.remove("c"));
Set s = t.entrySet();
Iterator i = s.iterator();
while(i.hasNext())
{ Map.Entry m = (Map.Entry) i.next();
System.out.println(m.getKey()+":"+m.getValue());
}
}
}
з таким виведенням5
{a=4, b=3, c=2, d=1, e=0}
[a, b, c, d, e]
[4, 3, 2, 1, 0]
a e
{b=3, c=2} {c=2, d=1, e=0}
Є ключ "с"
Ключа "x" немає
Є значення 4
значення 5 немає
Вилучено пару з ключем "c" і значенням 2
a:4
b:3
d:1
e:0