logo

Клас Java TreeMap

Ієрархія класів Java TreeMap

Клас 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.

    К: це тип ключів, які підтримує ця карта.IN: це тип зіставлених значень.

Конструктори класу 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 видалити (ключ об'єкта)Він видаляє пару ключ-значення вказаного ключа з карти.
встановитиentrySet()Він повертає встановлене подання відображень, що містяться на карті.
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?

HashMapTreeMap
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