Java valodā kartes interfeiss ir pieejams java.util pakotnē, kas attēlo atslēgas un vērtības kartēšanu. Java Map interfeiss nav apakštips Kolekcijas saskarne . Tāpēc tas darbojas nedaudz savādāk nekā pārējie kolekcijas veidi. Karte satur unikālas atslēgas.
Geeks, prāta vētrai vajadzēja būt kāpēc un kad lietot Maps.
Kartes ir lieliski piemērotas atslēgu un vērtību saistību kartēšanai, piemēram, vārdnīcām. Kartes tiek izmantotas, lai veiktu meklēšanu pēc taustiņiem vai kad kāds vēlas izgūt un atjaunināt elementus pēc taustiņiem. Daži izplatīti scenāriji ir šādi:
- Kļūdu kodu karte un to apraksti.
- Pasta indeksu un pilsētu karte.
- Vadītāju un darbinieku karte. Katrs vadītājs (atslēga) ir saistīts ar viņa vadīto darbinieku sarakstu (vērtību).
- Klašu un skolēnu karte. Katra klase (atslēga) ir saistīta ar skolēnu sarakstu (vērtību).

Kartes objektu izveide
Tā kā karte ir saskarne , objektus nevar izveidot pēc tipa kartes. Mums vienmēr ir nepieciešama klase, kas paplašina šo karti, lai izveidotu objektu. Un arī pēc ieviešanas Generics Java 1.5 versijā ir iespējams ierobežot objektu veidu, ko var saglabāt kartē.
Sintakse: Tipam drošas kartes definēšana
Map hm = new HashMap(); // Obj is the type of the object to be stored in Map>
Kartes saskarnes raksturojums
- Kartē nedrīkst būt dublikātu atslēgas, un katra atslēga var būt saistīta ar ne vairāk kā vienu vērtību. Dažas implementācijas pieļauj nulles atslēgas un nulles vērtības, piemēram, HashMap un LinkedHashMap , bet dažām nepatīk TreeMap .
- Kartes secība ir atkarīga no konkrētajām ieviešanām. Piemēram, TreeMap un LinkedHashMap ir paredzami pasūtījumi, savukārt HashMap nav.
- Ir divas saskarnes kartes ieviešanai Java. Tās ir Map un SortedMap un trīs klases: HashMap, TreeMap un LinkedHashMap.
Metodes Java kartes interfeisā
| Metode | Darbība veikta |
|---|---|
| skaidrs () | Šī metode tiek izmantota Java karšu interfeisā, lai notīrītu un noņemtu visus elementus vai kartējumus no norādītās karšu kolekcijas. |
| saturAtslēga (Objekts) | Šī metode tiek izmantota Java kartes interfeisā, lai pārbaudītu, vai konkrēta atslēga tiek kartēta kartē. Tas izmanto galveno elementu kā parametru un atgriež vērtību True, ja šis elements ir kartēts kartē. |
| saturVērtība(Objekts) | Šī metode tiek izmantota kartes interfeisā, lai pārbaudītu, vai noteikta vērtība kartē tiek kartēta ar vienu vai vairākām taustiņiem. Tas izmanto vērtību kā parametru un atgriež True, ja šī vērtība ir kartēta ar kādu no kartes taustiņiem. |
| ierakstsSet() | Šī metode tiek izmantota Java kartes interfeisā, lai izveidotu kopu no tiem pašiem kartē ietvertajiem elementiem. Tas pamatā atgriež kartes kopskatu, vai arī mēs varam izveidot jaunu kopu un saglabāt tajās kartes elementus. |
| vienāds (objekts) | Šī metode tiek izmantota Java kartes interfeisā, lai pārbaudītu divu karšu vienlīdzību. Tas pārbauda, vai vienas kartes elementi, kas nodoti kā parametrs, ir vienādi ar šīs kartes elementiem. |
| iegūt (objekts) | Šo metodi izmanto, lai izgūtu vai izgūtu vērtību, kas kartēta ar noteiktu parametrā minēto atslēgu. Tas atgriež NULL, ja kartē nav šāda atslēgas kartējuma. |
| hashCode() | Šī metode tiek izmantota kartes interfeisā, lai ģenerētu jaucējkodu konkrētajai kartei, kurā ir atslēgas un vērtības. |
| ir tukšs() | Šo metodi izmanto, lai pārbaudītu, vai kartē ir atslēgu un vērtību pāru ieraksti. Ja kartējums nepastāv, tas atgriež patieso vērtību. |
| keySet() | Šī metode tiek izmantota kartes interfeisā, lai atgrieztu šajā kartē ietverto taustiņu kopas skatu. Komplektu atbalsta karte, tāpēc izmaiņas kartē tiek atspoguļotas komplektā un otrādi. |
| likt (objekts, objekts) | Šī metode tiek izmantota Java kartes interfeisā, lai saistītu norādīto vērtību ar norādīto atslēgu šajā kartē. |
| ievietot visu (karte) | Šī metode tiek izmantota Java kartes interfeisā, lai kopētu visus kartējumus no norādītās kartes uz šo karti. |
| noņemt (objekts) | Šī metode tiek izmantota kartes interfeisā, lai no šīs kartes noņemtu atslēgas kartējumu, ja tā ir kartē. |
| Izmērs() | Šo metodi izmanto, lai atgrieztu kartē pieejamo atslēgu/vērtību pāru skaitu. |
| vērtības () | Šī metode tiek izmantota Java Map Interface, lai izveidotu kolekciju no kartes vērtībām. Tas būtībā atgriež HashMap vērtību kolekcijas skatu. |
| getOrDefault (objekta atslēga, V noklusējuma vērtība) | Atgriež vērtību, ar kuru norādītā atslēga ir kartēta, vai noklusējuma vērtību, ja šajā kartē nav atslēgas kartējuma. |
| sapludināšana (atslēga K, V vērtība, BiFunction remappingFunction) | Ja norādītā atslēga vēl nav saistīta ar vērtību vai ir saistīta ar nulli, saistiet to ar norādīto vērtību, kas nav nulle. |
| putJaNav(atslēga K, V vērtība) | Ja norādītā atslēga vēl nav saistīta ar vērtību (vai ir saistīta ar nulli), saista to ar doto vērtību un atgriež nulli, pretējā gadījumā atgriež pašreizējo saistīto vērtību. |
Piemērs:
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());> >}> >}> }> |
>
>Izvade:
a:100 b:200 c:300 d:400>
Klases, kas ievieš kartes saskarni, ir attēlotas tālāk esošajā medijā un aprakstītas vēlāk šādi:

1. HashMap
HashMap ir daļa no Java kolekcijas kopš Java 1.2. Tas nodrošina Java kartes saskarnes pamata ieviešanu. Tas saglabā datus (atslēga, vērtība) pāros. Lai piekļūtu vērtībai, ir jāzina tās atslēga. Šajā klasē tiek izmantota tehnika, ko sauc par Java
javascript izsaukšanas funkcija no html
// 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());> >}> }> |
>
>Izvade
vaibhav 20 vishal 10 sachin 30>
2. LinkedHashMap
LinkedHashMap ir gluži kā HashMap ar papildu funkciju saglabāt tajā ievietoto elementu secību. HashMap nodrošināja ātrās ievietošanas, meklēšanas un dzēšanas priekšrocības, taču tā nekad nesaglabāja celiņu un ievietošanas secību, ko nodrošina LinkedHashMap, kur elementiem var piekļūt to ievietošanas secībā. Apskatīsim, kā izveidot kartes objektu, izmantojot šo klasi.
Piemērs
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());> >}> }> |
>
>Izvade
vishal 10 sachin 30 vaibhav 20>
3. TreeMap
The TreeMap Java tiek izmantots, lai ieviestu kartes saskarni un NavigableMap kopā ar abstrakto klasi. Karte tiek sakārtota pēc dabiskās atslēgu secības vai ar salīdzinātāju, kas tiek nodrošināts kartes izveides laikā, atkarībā no izmantotā konstruktora. Tas izrādās efektīvs veids, kā šķirot un uzglabāt atslēgu un vērtību pārus. Koka kartes uzturētajai glabāšanas secībai ir jāatbilst vienādām kartēm, tāpat kā jebkurai citai sakārtotai kartei, neatkarīgi no skaidriem salīdzinātājiem. Apskatīsim, kā izveidot kartes objektu, izmantojot šo klasi.
Piemērs
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());> >}> }> |
>
>Izvade
sachin 30 vaibhav 20 vishal 10>
Operāciju veikšana, izmantojot Kartes interfeiss un HashMap klase
Tā kā Map ir saskarne, to var izmantot tikai ar klasi, kas ievieš šo saskarni. Tagad apskatīsim, kā veikt dažas bieži lietotās darbības kartē, izmantojot plaši izmantoto HashMap klase . Un arī pēc ieviešanas Generics Java 1.5 versijā ir iespējams ierobežot objektu veidu, ko var saglabāt kartē.
1. Elementu pievienošana
Lai kartei pievienotu kādu elementu, mēs varam izmantot metodi put() . Tomēr ievietošanas secība hashmapā netiek saglabāta. Iekšēji katram elementam tiek ģenerēts atsevišķs jaukums un elementi tiek indeksēti, pamatojoties uz šo jaucējkodu, lai padarītu to efektīvāku.
Piemērs
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);> >}> }> |
>
>Izvade
{1=Geeks, 2=For, 3=Geeks} {1=Geeks, 2=For, 3=Geeks}> 2. Mainīgais elements
Pēc elementu pievienošanas, ja vēlamies elementu mainīt, to var izdarīt, vēlreiz pievienojot elementu ar metodi put(). Tā kā kartes elementi tiek indeksēti, izmantojot taustiņus, atslēgas vērtību var mainīt, vienkārši ievietojot atjaunināto vērtību atslēgai, kurai mēs vēlamies mainīt.
Piemērs
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);> >}> }> |
skenera skenēšana java
>
>Izvade
Initial Map {1=Geeks, 2=Geeks, 3=Geeks} Updated Map {1=Geeks, 2=For, 3=Geeks}> 3. Elementu noņemšana
Lai noņemtu elementu no kartes, mēs varam izmantot metodi remove() . Šī metode ņem atslēgas vērtību un no šīs kartes noņem atslēgas kartējumu, ja tā ir kartē.
Piemērs
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);> >}> }> |
>
>Izvade
{1=Geeks, 2=For, 3=Geeks, 4=For} {1=Geeks, 2=For, 3=Geeks}> 4. Iterācija caur karti
Ir vairāki veidi, kā atkārtot karti. Slavenākais veids ir izmantot katrai cilpai un iegūt atslēgas. Atslēgas vērtība tiek atrasta, izmantojot metodi getValue().
Piemērs
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);> >}> >}> }> |
>
>Izvade
1 : Geeks 2 : For 3 : Geeks>
5. Saskaitiet skaitļu rašanos, izmantojot Hashmap
Šajā kodā mēs izmantojam putJa nav( ) kopā ar Collections.frequency() lai saskaitītu precīzu skaitļu rašanos. Daudzās programmās jums ir jāskaita konkrēta cipara vai burta parādīšanās. Lai atrisinātu šāda veida problēmas, izmantojiet šādu pieeju
Java
// 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); } }> |
>
programmatūras izstrādes dzīves cikls
>Izvade
{1=2, 2=1, 4=2, 41=1, 13=2, 31=2}> Bieži uzdotie jautājumi Java kartes interfeisā
Q1. Kas ir Java kartes interfeiss?
Atbilde:
Karte satur atslēgu-vērtību pārus, kur mēs piekļūstam elementiem kartē, izmantojot atslēgas vērtības.
Q2. Kādi ir karšu saskarņu veidi Java?
Atbilde:
Ir 3 karšu interfeisa implementācijas HashMap, LinkedHashMap un TreeMap.