În Java, Map Interface este prezentă în pachetul java.util reprezintă o mapare între o cheie și o valoare. Interfața Java Map nu este un subtip al Interfață de colecție . Prin urmare, se comportă puțin diferit față de restul tipurilor de colecție. O hartă conține chei unice.
Geeks, brainstormerul ar fi trebuit să fie de ce și când să folosiți Maps.
Hărțile sunt perfecte pentru a fi utilizate pentru maparea asocierilor cheie-valoare, cum ar fi dicționarele. Hărțile sunt folosite pentru a efectua căutări după chei sau când cineva dorește să recupereze și să actualizeze elemente după chei. Câteva scenarii comune sunt următoarele:
- O hartă a codurilor de eroare și descrierile acestora.
- O hartă a codurilor poștale și a orașelor.
- O hartă a managerilor și angajaților. Fiecare manager (cheie) este asociat cu o listă de angajați (valoare) pe care îi administrează.
- O hartă a claselor și a studenților. Fiecare clasă (cheie) este asociată cu o listă de studenți (valoare).

Crearea obiectelor de hartă
Deoarece Map este un interfață , nu pot fi create obiecte de tip hartă. Avem întotdeauna nevoie de o clasă care extinde această hartă pentru a crea un obiect. Și, de asemenea, după introducerea generice în Java 1.5, este posibil să restricționați tipul de obiect care poate fi stocat în Hartă.
cât cântărește kat timpf
Sintaxă: Definirea hărții tip sigure
Map hm = new HashMap(); // Obj is the type of the object to be stored in Map>
Caracteristicile unei interfețe de hartă
- O hartă nu poate conține chei duplicate și fiecare cheie se poate mapa la cel mult o valoare. Unele implementări permit cheie nulă și valori nule precum HashMap și LinkedHashMap, dar unora nu le place Harta copacului .
- Ordinea unei hărți depinde de implementările specifice. De exemplu, Harta copacului și LinkedHashMap au comenzi previzibile, în timp ce HashMap nu.
- Există două interfețe pentru implementarea Map în Java. Acestea sunt Map și SortedMap și trei clase: HashMap, TreeMap și LinkedHashMap.
Metode în Java Map Interface
| Metodă | Actiune realizata |
|---|---|
| clar() | Această metodă este utilizată în Java Map Interface pentru a șterge și elimina toate elementele sau mapările dintr-o colecție de hărți specificată. |
| containsKey(Obiect) | Această metodă este utilizată în Map Interface în Java pentru a verifica dacă o anumită cheie este mapată în Hartă sau nu. Acesta ia elementul cheie ca parametru și returnează True dacă acel element este mapat în hartă. |
| conţineValoare(Obiect) | Această metodă este utilizată în Map Interface pentru a verifica dacă o anumită valoare este mapată de o singură cheie sau de mai multe taste din Hartă. Acesta ia valoarea ca parametru și returnează True dacă acea valoare este mapată de oricare dintre cheile din hartă. |
| entrySet() | Această metodă este utilizată în Map Interface în Java pentru a crea un set din aceleași elemente conținute în hartă. În principiu, returnează o vedere setată a hărții sau putem crea un nou set și stoca elementele hărții în ele. |
| este egal(obiect) | Această metodă este utilizată în Java Map Interface pentru a verifica egalitatea între două hărți. Acesta verifică dacă elementele unei hărți transmise ca parametru sunt egale cu elementele acestei hărți sau nu. |
| obține (obiect) | Această metodă este folosită pentru a prelua sau a prelua valoarea mapată de o anumită cheie menționată în parametru. Returnează NULL atunci când harta nu conține o astfel de mapare pentru cheie. |
| hashCode() | Această metodă este utilizată în Map Interface pentru a genera un hashCode pentru harta dată, care conține chei și valori. |
| este gol() | Această metodă este folosită pentru a verifica dacă o hartă are vreo intrare pentru perechile cheie și valoare. Dacă nu există nicio mapare, atunci aceasta returnează adevărat. |
| keySet() | Această metodă este utilizată în Map Interface pentru a returna o vizualizare Set a tastelor conținute în această hartă. Setul este susținut de hartă, astfel încât modificările aduse hărții sunt reflectate în set și invers. |
| pune (obiect, obiect) | Această metodă este utilizată în Java Map Interface pentru a asocia valoarea specificată cu cheia specificată în această hartă. |
| putAll(Hartă) | Această metodă este utilizată în Map Interface în Java pentru a copia toate mapările de pe harta specificată pe această hartă. |
| elimina (obiect) | Această metodă este utilizată în Map Interface pentru a elimina maparea pentru o cheie de pe această hartă dacă aceasta este prezentă pe hartă. |
| mărimea() | Această metodă este utilizată pentru a returna numărul de perechi cheie/valoare disponibile pe hartă. |
| valori () | Această metodă este utilizată în Java Map Interface pentru a crea o colecție din valorile hărții. În principiu, returnează o vizualizare de colecție a valorilor din HashMap. |
| getOrDefault(cheia obiectului, V defaultValue) | Returnează valoarea la care este mapată cheia specificată sau defaultValue dacă această hartă nu conține nicio mapare pentru cheie. |
| îmbinare (tasta K, valoarea V, funcția de remapare BiFunction) | Dacă cheia specificată nu este deja asociată cu o valoare sau este asociată cu null, asociați-o cu valoarea non-nulă dată. |
| putIfAbsent (cheia K, valoarea V) | Dacă cheia specificată nu este deja asociată cu o valoare (sau este mapată la null) o asociază cu valoarea dată și returnează null, altfel returnează valoarea asociată curentă. |
Exemplu:
Java
// Java Program to Demonstrate> // Working of Map interface> > // Importing required classes> import> java.util.*;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String args[])> >{> >// Creating an empty HashMap> >Map hm> >=>new> HashMap();> > >// Inserting pairs in above Map> >// using put() method> >hm.put(>'a'>,>new> Integer(>100>));> >hm.put(>'b'>,>new> Integer(>200>));> >hm.put(>'c'>,>new> Integer(>300>));> >hm.put(>'d'>,>new> Integer(>400>));> > >// Traversing through Map using for-each loop> >for> (Map.Entry me :> >hm.entrySet()) {> > >// Printing keys> >System.out.print(me.getKey() +>':'>);> >System.out.println(me.getValue());> >}> >}> }> |
>
>Ieșire:
a:100 b:200 c:300 d:400>
Clasele care implementează interfața Map sunt descrise în media de mai jos și descrise mai târziu după cum urmează:

1. HashMap
HashMap face parte din colecția Java începând cu Java 1.2. Acesta oferă implementarea de bază a interfeței Map din Java. Stochează datele în perechi (Cheie, Valoare). Pentru a accesa o valoare trebuie să-i cunoști cheia. Această clasă folosește o tehnică numită Java
// Java Program to illustrate the Hashmap Class> > // Importing required classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating an empty HashMap> >Map map =>new> HashMap();> > >// Inserting entries in the Map> >// using put() method> >map.put(>'vishal'>,>10>);> >map.put(>'sachin'>,>30>);> >map.put(>'vaibhav'>,>20>);> > >// Iterating over Map> >for> (Map.Entry e : map.entrySet())> > >// Printing key-value pairs> >System.out.println(e.getKey() +>' '> >+ e.getValue());> >}> }> |
>
>Ieșire
vaibhav 20 vishal 10 sachin 30>
2. LinkedHashMap
LinkedHashMap este la fel ca HashMap, cu caracteristica suplimentară de a menține o ordine a elementelor introduse în el. HashMap a oferit avantajul inserării, căutării și ștergerii rapide, dar nu a menținut niciodată traseul și ordinea de inserare pe care LinkedHashMap le oferă unde elementele pot fi accesate în ordinea lor de inserare. Să vedem cum să creăm un obiect hartă folosind această clasă.
Exemplu
Java
// Java Program to Illustrate the LinkedHashmap Class> > // Importing required classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating an empty LinkedHashMap> >Map map =>new> LinkedHashMap();> > >// Inserting pair entries in above Map> >// using put() method> >map.put(>'vishal'>,>10>);> >map.put(>'sachin'>,>30>);> >map.put(>'vaibhav'>,>20>);> > >// Iterating over Map> >for> (Map.Entry e : map.entrySet())> > >// Printing key-value pairs> >System.out.println(e.getKey() +>' '> >+ e.getValue());> >}> }> |
>
>Ieșire
vishal 10 sachin 30 vaibhav 20>
3. Harta copacului
The TreeMap în Java este folosit pentru a implementa interfața Map și NavigableMap împreună cu Clasa Abstract. Harta este sortată în funcție de ordinea naturală a cheilor sale, sau de un Comparator furnizat la momentul creării hărții, în funcție de constructorul utilizat. Aceasta se dovedește a fi o modalitate eficientă de sortare și stocare a perechilor cheie-valoare. Ordinea de stocare menținută de harta arborescentă trebuie să fie în concordanță cu egalii la fel ca orice altă hartă sortată, indiferent de comparatorii explici. Să vedem cum să creăm un obiect hartă folosind această clasă.
Exemplu
Java
// Java Program to Illustrate TreeMap Class> > // Importing required classes> import> java.util.*;> > // Main class> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Creating an empty TreeMap> >Map map =>new> TreeMap();> > >// Inserting custom elements in the Map> >// using put() method> >map.put(>'vishal'>,>10>);> >map.put(>'sachin'>,>30>);> >map.put(>'vaibhav'>,>20>);> > >// Iterating over Map using for each loop> >for> (Map.Entry e : map.entrySet())> > >// Printing key-value pairs> >System.out.println(e.getKey() +>' '> >+ e.getValue());> >}> }> |
>
>Ieșire
sachin 30 vaibhav 20 vishal 10>
Efectuarea de operațiuni folosind Interfață de hartă și Clasa HashMap
Deoarece Map este o interfață, poate fi folosită numai cu o clasă care implementează această interfață. Acum, haideți să vedem cum să efectuați câteva operații utilizate frecvent pe o hartă folosind cea mai utilizată Clasa HashMap . Și, de asemenea, după introducerea lui generice în Java 1.5, este posibil să se restricționeze tipul de obiect care poate fi stocat în hartă.
sortați o listă de matrice
1. Adăugarea de elemente
Pentru a adăuga un element pe hartă, putem folosi metoda put() . Cu toate acestea, ordinea de inserare nu este reținută în hashmap. Intern, pentru fiecare element, este generat un hash separat, iar elementele sunt indexate pe baza acestui hash pentru a-l face mai eficient.
Exemplu
Java
// Java program to demonstrate> // the working of Map interface> > import> java.util.*;> class> GFG {> >public> static> void> main(String args[])> >{> >// Default Initialization of a> >// Map> >Map hm1 =>new> HashMap();> > >// Initialization of a Map> >// using Generics> >Map hm2> >=>new> HashMap();> > >// Inserting the Elements> >hm1.put(>1>,>'Geeks'>);> >hm1.put(>2>,>'For'>);> >hm1.put(>3>,>'Geeks'>);> > >hm2.put(>new> Integer(>1>),>'Geeks'>);> >hm2.put(>new> Integer(>2>),>'For'>);> >hm2.put(>new> Integer(>3>),>'Geeks'>);> > >System.out.println(hm1);> >System.out.println(hm2);> >}> }> |
>
>Ieșire
{1=Geeks, 2=For, 3=Geeks} {1=Geeks, 2=For, 3=Geeks}> 2. Schimbarea elementului
După adăugarea elementelor dacă dorim să schimbăm elementul, se poate face prin adăugarea din nou a elementului cu metoda put(). Deoarece elementele din hartă sunt indexate cu ajutorul tastelor, valoarea cheii poate fi modificată prin simpla inserare a valorii actualizate pentru cheia pentru care dorim să o modificăm.
Exemplu
Java
// Java program to demonstrate> // the working of Map interface> > import> java.util.*;> class> GFG {> >public> static> void> main(String args[])> >{> > >// Initialization of a Map> >// using Generics> >Map hm1> >=>new> HashMap();> > >// Inserting the Elements> >hm1.put(>new> Integer(>1>),>'Geeks'>);> >hm1.put(>new> Integer(>2>),>'Geeks'>);> >hm1.put(>new> Integer(>3>),>'Geeks'>);> > >System.out.println(>'Initial Map '> + hm1);> > >hm1.put(>new> Integer(>2>),>'For'>);> > >System.out.println(>'Updated Map '> + hm1);> >}> }> |
>
>
actor de film vijayIeșire
Initial Map {1=Geeks, 2=Geeks, 3=Geeks} Updated Map {1=Geeks, 2=For, 3=Geeks}> 3. Îndepărtarea elementelor
Pentru a elimina un element din Hartă, putem folosi metoda remove() . Această metodă preia valoarea cheii și elimină maparea pentru o cheie de pe această hartă dacă aceasta este prezentă pe hartă.
Exemplu
Java
// Java program to demonstrate> // the working of Map interface> > import> java.util.*;> class> GFG {> > >public> static> void> main(String args[])> >{> > >// Initialization of a Map> >// using Generics> >Map hm1> >=>new> HashMap();> > >// Inserting the Elements> >hm1.put(>new> Integer(>1>),>'Geeks'>);> >hm1.put(>new> Integer(>2>),>'For'>);> >hm1.put(>new> Integer(>3>),>'Geeks'>);> >hm1.put(>new> Integer(>4>),>'For'>);> > >// Initial Map> >System.out.println(hm1);> > >hm1.remove(>new> Integer(>4>));> > >// Final Map> >System.out.println(hm1);> >}> }> |
>
>Ieșire
{1=Geeks, 2=For, 3=Geeks, 4=For} {1=Geeks, 2=For, 3=Geeks}> 4. Iterarea prin Hartă
Există mai multe moduri de a itera prin Hartă. Cel mai faimos mod este să folosești o buclă pentru fiecare și să obții cheile. Valoarea cheii este găsită folosind metoda getValue().
Exemplu
Java
// Java program to demonstrate> // the working of Map interface> > import> java.util.*;> class> GFG {> >public> static> void> main(String args[])> >{> > >// Initialization of a Map> >// using Generics> >Map hm1> >=>new> HashMap();> > >// Inserting the Elements> >hm1.put(>new> Integer(>1>),>'Geeks'>);> >hm1.put(>new> Integer(>2>),>'For'>);> >hm1.put(>new> Integer(>3>),>'Geeks'>);> > >for> (Map.Entry mapElement : hm1.entrySet()) {> >int> key = (>int>)mapElement.getKey();> > >// Finding the value> >String value = (String)mapElement.getValue();> > >System.out.println(key +>' : '> + value);> >}> >}> }> |
>
>Ieșire
1 : Geeks 2 : For 3 : Geeks>
5. Numărați apariția numerelor folosind Hashmap
În acest cod, folosim putIfAbsent( ) împreună cu Collections.frequency() pentru a număra apariția exactă a numerelor. În multe programe, trebuie să numărați apariția unui anumit număr sau literă. Utilizați următoarea abordare pentru a rezolva aceste tipuri de probleme
Java
harta reactjs
// Java program to Count the Occurrence> // of numbers using Hashmap> import> java.util.*;> > class> HelloWorld {> >public> static> void> main(String[] args)> >{> >int> a[] = {>1>,>13>,>4>,>1>,>41>,>31>,>31>,>4>,>13>,>2> };> > >// put all elements in arraylist> >ArrayList aa =>new> ArrayList();> >for> (>int> i =>0>; i aa.add(a[i]); } HashMap h = new HashMap(); // counting occurrence of numbers for (int i = 0; i h.putIfAbsent(aa.get(i), Collections.frequency( aa, aa.get(i))); } System.out.println(h); } }> |
>
>Ieșire
{1=2, 2=1, 4=2, 41=1, 13=2, 31=2}> Întrebări frecvente în Java Map Interface
Î1. Ce este o interfață de hartă în Java?
Răspuns:
Harta conține perechi cheie-valoare, unde accesăm elementele din hartă folosind valori cheie.
Q2. Care sunt tipurile de interfețe de hărți în Java?
Răspuns:
Există 3 implementări de interfață pentru hărți HashMap, LinkedHashMap și TreeMap.