logo

Інтерфейс карти Java

Карта містить значення на основі ключа, тобто пари ключа та значення. Кожна пара ключів і значень називається записом. Карта містить унікальні ключі.

Карта корисна, якщо потрібно шукати, оновлювати або видаляти елементи на основі ключа.

Ієрархія карт Java

Існує два інтерфейси для реалізації Map у java: Map і SortedMap і три класи: HashMap, LinkedHashMap і TreeMap. Ієрархія Java Map наведена нижче:

Ієрархія карт Java

Карта не допускає повторюваних ключів, але ви можете мати повторювані значення. HashMap і LinkedHashMap допускають нульові ключі та значення, але TreeMap не дозволяє жодного нульового ключа чи значення.

Карту неможливо обійти, тому вам потрібно перетворити її на Set за допомогою keySet() або entrySet() метод.

Класопис
HashMap HashMap — це реалізація Map, але вона не підтримує жодного порядку.
LinkedHashMapLinkedHashMap є реалізацією Map. Він успадковує клас HashMap. Він підтримує порядок вставки.
TreeMap TreeMap — це реалізація Map і SortedMap. Він підтримує порядок зростання.

Корисні методи інтерфейсу Map

методопис
V put(ключ об'єкта, значення об'єкта)Використовується для вставки запису на карту.
void putAll (Карта карти)Він використовується для вставки вказаної карти в карту.
V putIfAbsent(ключ K, значення V)Він вставляє вказане значення з указаним ключем у карту, лише якщо воно ще не вказано.
V видалити (ключ об'єкта)Він використовується для видалення запису для вказаного ключа.
логічне видалення (ключ об'єкта, значення об'єкта)Він видаляє вказані значення з відповідними вказаними ключами з карти.
Встановити keySet()Він повертає перегляд Set, що містить усі ключі.
встановитиentrySet()Він повертає представлення Set, що містить усі ключі та значення.
void clear()Використовується для скидання карти.
V compute (клавіша K, BiFunction remappingFunction)Він використовується для обчислення відображення для вказаного ключа та його поточного відображеного значення (або значення null, якщо поточного відображення немає).
V computeIfAbsent(клавіша K, функція відображення функції)Він використовується для обчислення його значення за допомогою заданої функції відображення, якщо вказаний ключ ще не пов’язано зі значенням (або відображено на нуль), і вводить його в цю карту, якщо він не нульовий.
V computeIfPresent(клавіша K, BiFunction remappingFunction)Він використовується для обчислення нового відображення з урахуванням ключа та його поточного відображеного значення, якщо значення для зазначеного ключа присутнє та відмінне від нуля.
boolean containsValue(значення об'єкта)Цей метод повертає true, якщо певне значення, що дорівнює значенню, існує на карті, інакше повертає false.
логічний містить ключ (ключ об'єкта)Цей метод повертає true, якщо певний ключ, що дорівнює ключу, існує в межах карти, інакше повертає false.
логічне дорівнює (об'єкт o)Використовується для порівняння зазначеного Об’єкта з Картою.
void forEach(дія BiConsumer)Він виконує задану дію для кожного запису на карті, доки всі записи не будуть оброблені або дія не створить виняткову ситуацію.
V get (ключ об'єкта)Цей метод повертає об’єкт, який містить значення, пов’язане з ключем.
V getOrDefault(ключ об'єкта, V defaultValue)Він повертає значення, на яке зіставляється вказаний ключ, або defaultValue, якщо карта не містить зіставлення для ключа.
int hashCode()Він повертає значення хеш-коду для карти
логічне isEmpty()Цей метод повертає true, якщо карта порожня; повертає false, якщо містить хоча б один ключ.
V merge (ключ K, значення V, BiFunction remappingFunction)Якщо вказаний ключ ще не пов’язано зі значенням або пов’язано з null, пов’язує його з заданим ненульовим значенням.
V замінити (ключ K, значення V)Він замінює вказане значення на вказаний ключ.
логічна заміна (ключ K, V старе значення, V нове значення)Він замінює старе значення на нове значення для вказаного ключа.
void replaceAll (функція BiFunction)Він замінює значення кожного запису результатом виклику даної функції для цього запису, доки всі записи не будуть оброблені або функція викличе виняткову ситуацію.
Значення колекції ()Він повертає перегляд колекції значень, що містяться на карті.
int size()Цей метод повертає кількість записів на карті.

Інтерфейс Map.Entry

Entry є підінтерфейсом Map. Отже, ми матимемо доступ до нього за назвою Map.Entry. Він повертає представлення колекції карти, елементи якої належать до цього класу. Він надає методи отримання ключа та значення.

Методи інтерфейсу Map.Entry

методопис
K getKey()Використовується для отримання ключа.
V getValue()Він використовується для отримання вартості.
int hashCode()Він використовується для отримання хеш-коду.
V setValue(значення V)Він використовується для заміни значення, що відповідає цьому запису, на вказане значення.
логічне дорівнює (об'єкт o)Він використовується для порівняння зазначеного об'єкта з іншими існуючими об'єктами.
статичнийкомпараторcomparingByKey()Він повертає компаратор, який порівнює об’єкти в природному порядку за ключем.
статичний компараторcomparingByKey(Компаратор cmp)Він повертає компаратор, який порівнює об’єкти за ключем за допомогою заданого компаратора.
статичнийкомпараторcomparingByValue()Він повертає компаратор, який порівнює об’єкти в природному порядку за значенням.
статичний компараторcomparingByValue(Comparator cmp)Він повертає компаратор, який порівнює об’єкти за значенням за допомогою заданого компаратора.

Приклад карти Java: незагальний (старий стиль)

 //Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } } 

Вихід:

об'єкт для json у java
 1 Amit 2 Jai 5 Rahul 6 Amit 

Приклад карти Java: загальний (новий стиль)

 import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 

Вихід:

 102 Rahul 100 Amit 101 Vijay 

Приклад карти Java: comparingByKey()

 import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Вихід:

 100=Amit 101=Vijay 102=Rahul 

Приклад карти Java: comparingByKey() у порядку спадання

 import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Вихід:

 102=Rahul 101=Vijay 100=Amit 

Приклад карти Java: comparingByValue()

 import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Вихід:

 100=Amit 102=Rahul 101=Vijay 

Приклад карти Java: comparingByValue() у порядку спадання

 import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Вихід:

 101=Vijay 102=Rahul 100=Amit