logo

Mapové rozhranie Java

Mapa obsahuje hodnoty na základe kľúča, teda pár kľúča a hodnoty. Každý pár kľúča a hodnoty je známy ako položka. Mapa obsahuje jedinečné kľúče.

koľko kláves má klávesnice

Mapa je užitočná, ak musíte vyhľadávať, aktualizovať alebo mazať prvky na základe kľúča.

Hierarchia máp Java

Existujú dve rozhrania na implementáciu mapy v jazyku Java: Map a SortedMap a tri triedy: HashMap, LinkedHashMap a TreeMap. Hierarchia Java Map je uvedená nižšie:

Hierarchia máp Java

Mapa nepovoľuje duplicitné kľúče, ale môžete mať duplicitné hodnoty. HashMap a LinkedHashMap umožňujú nulové kľúče a hodnoty, ale TreeMap nepovoľuje žiadny nulový kľúč alebo hodnotu.

Mapu nie je možné prechádzať, takže ju musíte previesť na Set using keySet() alebo entrySet() metóda.

TriedaPopis
HashMap HashMap je implementácia mapy, ale neudržiava žiadny poriadok.
LinkedHashMapLinkedHashMap je implementácia mapy. Zdedí triedu HashMap. Zachováva poradie vloženia.
Stromová mapa TreeMap je implementácia Map a SortedMap. Udržiava vzostupné poradie.

Užitočné metódy rozhrania mapy

MetódaPopis
V put (kľúč objektu, hodnota objektu)Slúži na vloženie záznamu do mapy.
void putAll(mapa mapy)Slúži na vloženie zadanej mapy do mapy.
V putIfAbsent (kľúč K, hodnota V)Zadanú hodnotu so zadaným kľúčom vloží do mapy iba vtedy, ak ešte nie je zadaná.
V odstrániť (kľúč objektu)Používa sa na vymazanie záznamu pre zadaný kľúč.
boolovské odstránenie (kľúč objektu, hodnota objektu)Z mapy odstráni zadané hodnoty s priradenými špecifikovanými kľúčmi.
Set keySet()Vráti zobrazenie Set obsahujúce všetky kľúče.
SetentrySet()Vráti zobrazenie Set obsahujúce všetky kľúče a hodnoty.
void clear()Používa sa na resetovanie mapy.
V compute (kľúč K, BiFunction remappingFunction)Používa sa na výpočet mapovania pre zadaný kľúč a jeho aktuálnu mapovanú hodnotu (alebo null, ak neexistuje žiadne aktuálne mapovanie).
V computeIfAbsent (kláves K, funkcia mapovania funkcií)Používa sa na výpočet jeho hodnoty pomocou danej mapovacej funkcie, ak zadaný kľúč ešte nie je priradený k hodnote (alebo je namapovaný na hodnotu null), a vloží ho do tejto mapy, pokiaľ nie je null.
V computeIfPresent (kláves K, premapovanie funkcie BiFunction)Používa sa na výpočet nového mapovania daného kľúča a jeho aktuálnej namapovanej hodnoty, ak je hodnota pre zadaný kľúč prítomná a nie je nulová.
boolean obsahujeHodnotu (hodnota objektu)Táto metóda vráti hodnotu true, ak na mape existuje nejaká hodnota rovnajúca sa hodnote, inak vráti hodnotu false.
boolean obsahuje kľúč (kľúč objektu)Táto metóda vráti hodnotu true, ak na mape existuje nejaký kľúč rovný kľúču, inak vráti hodnotu false.
boolean rovná sa (objekt o)Používa sa na porovnanie určeného objektu s mapou.
neplatné pre každého (akcia BiConsumer)Vykonáva danú akciu pre každý záznam na mape, kým nie sú spracované všetky záznamy alebo akcia nevyvolá výnimku.
V get (kľúč objektu)Táto metóda vráti objekt, ktorý obsahuje hodnotu priradenú ku kľúču.
V getOrDefault (kľúč objektu, V predvolená hodnota)Vráti hodnotu, na ktorú je zadaný kľúč namapovaný, alebo defaultValue, ak mapa neobsahuje žiadne mapovanie pre kľúč.
int hashCode()Vráti hodnotu hash kódu pre mapu
boolean isEmpty()Táto metóda vráti hodnotu true, ak je mapa prázdna; vráti hodnotu false, ak obsahuje aspoň jeden kľúč.
V zlúčenie (kľúč K, hodnota V, premapovanie funkcie BiFunction)Ak zadaný kľúč ešte nie je priradený k hodnote alebo je priradený k hodnote null, priradí ho k danej hodnote, ktorá nie je nulová.
V nahradiť (kľúč K, hodnota V)Nahrádza zadanú hodnotu za zadaný kľúč.
boolovské nahradenie (kľúč K, V stará hodnota, V nová hodnota)Nahradí starú hodnotu novou hodnotou pre zadaný kľúč.
void nahradiť všetko (funkcia BiFunction)Nahrádza hodnotu každej položky výsledkom vyvolania danej funkcie na tejto položke, kým nie sú spracované všetky položky alebo funkcia nevyvolá výnimku.
Hodnoty zbierky ()Vráti zobrazenie kolekcie hodnôt obsiahnutých v mape.
int size()Táto metóda vráti počet záznamov na mape.

Rozhranie Map.Entry

Vstup je podrozhraním mapy. Takže k nej budeme pristupovať podľa názvu Map.Entry. Vráti kolekciu mapy, ktorej prvky patria do tejto triedy. Poskytuje metódy na získanie kľúča a hodnoty.

Metódy rozhrania Map.Entry

MetódaPopis
K getKey()Používa sa na získanie kľúča.
V getValue()Používa sa na získanie hodnoty.
int hashCode()Používa sa na získanie hashCode.
V setValue (hodnota V)Používa sa na nahradenie hodnoty zodpovedajúcej tomuto záznamu zadanou hodnotou.
boolean rovná sa (objekt o)Používa sa na porovnanie špecifikovaného objektu s inými existujúcimi objektmi.
statickéPorovnávačcomparingByKey()Vracia komparátor, ktorý porovnáva objekty v prirodzenom poradí na kľúči.
statický komparátorcomparingByKey(Comparator cmp)Vracia komparátor, ktorý porovnáva objekty podľa kľúča pomocou daného komparátora.
statickéPorovnávačcomparingByValue()Vracia komparátor, ktorý porovnáva objekty v prirodzenom poradí podľa hodnoty.
statický komparátorcomparingByValue(Comparator cmp)Vracia komparátor, ktorý porovnáva objekty podľa hodnoty pomocou daného komparátora.

Príklad mapy Java: Nevšeobecné (starý štýl)

 //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()); } } } 

Výkon:

topológie siete
 1 Amit 2 Jai 5 Rahul 6 Amit 

Príklad mapy Java: Všeobecný (nový štýl)

 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()); } } } 

Výkon:

 102 Rahul 100 Amit 101 Vijay 

Príklad Java mapy: 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); } } 

Výkon:

registrovať pamäť
 100=Amit 101=Vijay 102=Rahul 

Príklad Java mapy: comparingByKey() v zostupnom poradí

 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); } } 

Výkon:

 102=Rahul 101=Vijay 100=Amit 

Príklad Java mapy: 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); } } 

Výkon:

 100=Amit 102=Rahul 101=Vijay 

Príklad Java mapy: comparingByValue() v zostupnom poradí

 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); } } 

Výkon:

 101=Vijay 102=Rahul 100=Amit