Клас Java TreeMap — це реалізація на основі червоно-чорного дерева. Він забезпечує ефективний засіб зберігання пар ключ-значення у відсортованому порядку.
Важливі моменти про клас Java TreeMap:
- Java TreeMap містить значення на основі ключа. Він реалізує інтерфейс NavigableMap і розширює клас AbstractMap.
- Java TreeMap містить лише унікальні елементи.
- Java TreeMap не може мати нульовий ключ, але може мати кілька нульових значень.
- Java TreeMap не синхронізується.
- Java TreeMap підтримує порядок зростання.
Оголошення класу TreeMap
Давайте подивимося оголошення для класу java.util.TreeMap.
функція прототипу c++
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
Параметри класу TreeMap
Давайте подивимося на параметри класу java.util.TreeMap.
Конструктори класу Java TreeMap
Конструктор | опис |
---|---|
TreeMap() | Він використовується для побудови пустої карти дерева, яка буде відсортована за природним порядком її ключа. |
TreeMap (компаратор компаратора) | Він використовується для побудови порожньої карти на основі дерева, яка буде відсортована за допомогою компаратора comp. |
TreeMap(Карта m) | Він використовується для ініціалізації карти дерева записами з м , які будуть відсортовані за природним порядком ключів. |
TreeMap(SortedMap m) | Він використовується для ініціалізації карти дерева записами з SortedMap див , які будуть відсортовані в тому ж порядку, що й див. |
Методи класу Java TreeMap
метод | опис |
---|---|
Map.Entry стеляEntry(клавіша K) | Він повертає пару ключ-значення, що має найменший ключ, більший або рівний зазначеному ключу, або нульовий, якщо такого ключа немає. |
К стеліКлюч (К ключ) | Він повертає найменший ключ, більший за вказаний ключ або нуль, якщо такого ключа немає. |
void clear() | Він видаляє всі пари ключ-значення з карти. |
Об'єкт clone() | Він повертає поверхневу копію екземпляра TreeMap. |
Компаратор comparator() | Він повертає компаратор, який розташовує ключ у порядку, або null, якщо карта використовує природне впорядкування. |
NavigableSet descendingKeySet() | Він повертає перегляд NavigableSet у зворотному порядку ключів, що містяться на карті. |
NavigableMap descendingMap() | Він повертає вказані пари ключ-значення в порядку спадання. |
Map.Entry firstEntry() | Він повертає пару ключ-значення з найменшим ключем. |
Map.Entry floorEntry(клавіша K) | Він повертає найбільший ключ, менший або рівний зазначеному ключу, або нульовий, якщо такого ключа немає. |
void forEach(дія BiConsumer) | Він виконує задану дію для кожного запису на карті, доки всі записи не будуть оброблені або дія не створить виняткову ситуацію. |
SortedMap headMap (K toKey) | Він повертає пари ключ-значення, ключі яких строго менші за toKey. |
NavigableMap headMap (K toKey, логічне значення включно) | Він повертає пари ключ-значення, ключі яких менші (або дорівнюють, якщо значення inclusive має значення true) toKey. |
Map.Entry aboveEntry (клавіша K) | Він повертає найменший ключ, строго більший за даний ключ, або нуль, якщо такого ключа немає. |
K aboveKey (клавіша K) | Він використовується для повернення істини, якщо ця карта містить відображення для вказаного ключа. |
Встановити keySet() | Він повертає колекцію ключів, існуючих на карті. |
Map.Entry lastEntry() | Він повертає пару ключ-значення, що має найбільший ключ, або null, якщо такого ключа немає. |
Map.Entry lowerEntry (клавіша K) | Він повертає зіставлення ключ-значення, пов’язане з найбільшим ключем, строго меншим за даний ключ, або нульовим, якщо такого ключа немає. |
K нижня клавіша (клавіша K) | Він повертає найбільший ключ, строго менший за даний ключ, або нуль, якщо такого ключа немає. |
NavigableSet navigableKeySet() | Він повертає перегляд NavigableSet ключів, які містяться на цій карті. |
Map.Entry pollFirstEntry() | Він видаляє та повертає зіставлення ключ-значення, пов’язане з найменшим ключем у цій карті, або значення null, якщо карта порожня. |
Map.Entry pollLastEntry() | Він видаляє та повертає зіставлення ключ-значення, пов’язане з найбільшим ключем у цій карті, або значення null, якщо карта порожня. |
V put (ключ K, значення V) | Він вставляє вказане значення з указаним ключем у карту. |
void putAll (Карта карти) | Він використовується для копіювання всіх пар ключ-значення з однієї карти на іншу. |
V замінити (ключ K, значення V) | Він замінює вказане значення на вказаний ключ. |
логічна заміна (ключ K, V старе значення, V нове значення) | Він замінює старе значення на нове значення для вказаного ключа. |
void replaceAll (функція BiFunction) | Він замінює значення кожного запису результатом виклику даної функції для цього запису, доки всі записи не будуть оброблені або функція не викличе виняткову ситуацію. |
NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | Він повертає пари ключ-значення, ключі яких варіюються від fromKey до toKey. |
SortedMap subMap(K fromKey, K toKey) | Він повертає пари ключ-значення, ключі яких варіюються від fromKey, включно, до toKey, винятково. |
SortedMap tailMap(K fromKey) | Він повертає пари ключ-значення, ключі яких більші або дорівнюють fromKey. |
NavigableMap tailMap(K fromKey, boolean inclusive) | Він повертає пари ключ-значення, ключі яких більші (або дорівнюють, якщо включно є істинним) fromKey. |
логічний містить ключ (ключ об'єкта) | Він повертає true, якщо карта містить відображення для вказаного ключа. |
boolean containsValue(значення об'єкта) | Він повертає значення true, якщо карта зіставляє один або кілька ключів із вказаним значенням. |
K firstKey() | Він використовується для повернення першого (найнижчого) ключа на цій відсортованій карті. |
V get (ключ об'єкта) | Він використовується для повернення значення, якому карта відображає вказаний ключ. |
K lastKey() | Він використовується для повернення останнього (найвищого) ключа на даний момент у відсортованій карті. |
V видалити (ключ об'єкта) | Він видаляє пару ключ-значення вказаного ключа з карти. |
встановити | Він повертає встановлене подання відображень, що містяться на карті. |
int size() | Він повертає кількість пар ключ-значення, наявних у хеш-таблиці. |
Значення колекції () | Він повертає перегляд колекції значень, що містяться на карті. |
Приклад Java TreeMap
import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Output:100 Amit 101 Vijay 102 Ravi 103 Rahul
Приклад Java TreeMap: remove()
import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
Вихід:
конструктор рядків java
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Приклад Java TreeMap: NavigableMap
import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } }
descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi}
Приклад Java TreeMap: SortedMap
import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } }
headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay}
Яка різниця між HashMap і TreeMap?
HashMap | TreeMap |
---|---|
1) HashMap може містити один нульовий ключ. | TreeMap не може містити нульовий ключ. |
2) HashMap не підтримує порядок. | TreeMap підтримує порядок зростання. |
Приклад Java TreeMap: Книга
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Вихід:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6