logo

Java Map интерфейс

Картата съдържа стойности на базата на ключ, т.е. двойка ключ и стойност. Всяка двойка ключ и стойност е известна като запис. Картата съдържа уникални ключове.

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

Йерархия на Java Map

Има два интерфейса за внедряване на Map в java: Map и SortedMap и три класа: HashMap, LinkedHashMap и TreeMap. Йерархията на Java Map е дадена по-долу:

Йерархия на Java Map

Картата не позволява дублиране на ключове, но можете да имате дублирани стойности. HashMap и LinkedHashMap позволяват нулеви ключове и стойности, но TreeMap не позволява нулев ключ или стойност.

Картата не може да бъде обходена, така че трябва да я преобразувате в Set с помощта на keySet() или enterSet() метод.

КласОписание
HashMap HashMap е внедряването на Map, но не поддържа никакъв ред.
LinkedHashMapLinkedHashMap е внедряването на Map. Той наследява класа HashMap. Той поддържа реда на вмъкване.
TreeMap TreeMap е внедряването на Map и SortedMap. Поддържа възходящ ред.

Полезни методи на интерфейса на картата

МетодОписание
V put(обект ключ, стойност на обект)Използва се за вмъкване на запис в картата.
void putAll (карта карта)Използва се за вмъкване на определената карта в картата.
V putIfAbsent(ключ K, V стойност)Той вмъква посочената стойност с посочения ключ в картата само ако вече не е посочен.
V премахване (обектен ключ)Използва се за изтриване на запис за посочения ключ.
булево премахване (обектен ключ, стойност на обект)Той премахва посочените стойности със съответните посочени ключове от картата.
Задайте keySet()Той връща изгледа Set, съдържащ всички ключове.
КомплектenterSet()Той връща изгледа Set, съдържащ всички ключове и стойности.
void clear()Използва се за нулиране на картата.
V compute (клавиш K, BiFunction remappingFunction)Използва се за изчисляване на съпоставяне за посочения ключ и неговата текуща картографирана стойност (или нула, ако няма текущо съпоставяне).
V computeIfAbsent(ключ K, Function mappingFunction)Използва се за изчисляване на стойността му с помощта на дадената функция за съпоставяне, ако посоченият ключ все още не е свързан със стойност (или е съпоставен с нула), и го въвежда в тази карта, освен ако не е нула.
V computeIfPresent(ключ K, BiFunction remappingFunction)Използва се за изчисляване на ново съпоставяне, дадено на ключа и неговата текуща нанесена стойност, ако стойността за посочения ключ е налична и не е нула.
boolean containsValue(Стойност на обект)Този метод връща true, ако някаква стойност, равна на стойността, съществува в картата, в противен случай връща false.
boolean containsKey(обектен ключ)Този метод връща true, ако в картата съществува ключ, равен на ключа, в противен случай връща false.
булево равно (обект o)Използва се за сравняване на посочения обект с картата.
void forEach(действие BiConsumer)Той изпълнява даденото действие за всеки запис в картата, докато всички записи бъдат обработени или действието хвърли изключение.
V get (обектен ключ)Този метод връща обекта, който съдържа стойността, свързана с ключа.
V getOrDefault(обектен ключ, V defaultValue)Връща стойността, към която е съпоставен посоченият ключ, или defaultValue, ако картата не съдържа съпоставяне за ключа.
int hashCode()Връща стойността на хеш кода за картата
булево isEmpty()Този метод връща true, ако картата е празна; връща false, ако съдържа поне един ключ.
V сливане (K ключ, V стойност, BiFunction remappingFunction)Ако указаният ключ все още не е свързан със стойност или е свързан с null, той го свързва с дадената не-null стойност.
V замяна (К ключ, V стойност)Той замества определената стойност за определен ключ.
булева замяна (клавиш K, V стара стойност, V нова стойност)Той заменя старата стойност с новата стойност за определен ключ.
void replaceAll (функция BiFunction)Той замества стойността на всеки запис с резултата от извикването на дадена функция върху този запис, докато всички записи бъдат обработени или функцията хвърли изключение.
Колекция стойности()Той връща изглед на колекция от стойностите, съдържащи се в картата.
int size()Този метод връща броя на записите в картата.

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

Entry е подинтерфейсът на Map. Така че ще имаме достъп до него чрез име Map.Entry. Връща колекция-изглед на картата, чиито елементи са от този клас. Той предоставя методи за получаване на ключ и стойност.

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

МетодОписание
K getKey()Използва се за получаване на ключ.
V getValue()Използва се за получаване на стойност.
int hashCode()Използва се за получаване на hashCode.
V setValue(V стойност)Използва се за замяна на стойността, съответстваща на този запис, с посочената стойност.
булево равно (обект o)Използва се за сравняване на посочения обект с други съществуващи обекти.
статиченКомпараторcomparingByKey()Той връща компаратор, който сравнява обектите в естествен ред на ключ.
статичен компараторcomparingByKey(Comparator 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()); } } } 

Изход:

10 мл е колко
 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