logo

Java-karttaliittymä

Kartta sisältää arvot avaimen eli avain- ja arvoparin perusteella. Jokainen avain- ja arvopari tunnetaan merkinnänä. Kartta sisältää ainutlaatuiset avaimet.

Kartta on hyödyllinen, jos joudut etsimään, päivittämään tai poistamaan elementtejä avaimen perusteella.

Java-karttojen hierarkia

Kartan toteuttamiseen javassa on kaksi käyttöliittymää: Map ja SortedMap sekä kolme luokkaa: HashMap, LinkedHashMap ja TreeMap. Java-kartan hierarkia on annettu alla:

Java-karttojen hierarkia

Kartta ei salli päällekkäisiä avaimia, mutta sinulla voi olla päällekkäisiä arvoja. HashMap ja LinkedHashMap sallivat nolla-avaimet ja -arvot, mutta TreeMap ei salli mitään nolla-avainta tai arvoa.

Kartta ei voi kulkea, joten sinun on muutettava se Aseta käyttämällä keySet() tai entrySet() menetelmä.

LuokkaKuvaus
HashMap HashMap on Mapin toteutus, mutta se ei ylläpidä järjestystä.
LinkedHashMapLinkedHashMap on Mapin toteutus. Se perii HashMap-luokan. Se ylläpitää lisäysjärjestystä.
TreeMap TreeMap on Map- ja SortedMap-toteutus. Se ylläpitää nousevaa järjestystä.

Hyödyllisiä karttarajapinnan menetelmiä

MenetelmäKuvaus
V put (Objektiavain, Objektin arvo)Sitä käytetään merkinnän lisäämiseen karttaan.
void putAll (karttakartta)Sitä käytetään määritetyn kartan lisäämiseen karttaan.
V putIfAbsent (K-avain, V-arvo)Se lisää määritetyn arvon määritetyllä avaimella karttaan vain, jos sitä ei ole jo määritetty.
V poista (objektiavain)Sitä käytetään määritetyn avaimen merkinnän poistamiseen.
looginen poista (objektiavain, objektin arvo)Se poistaa määritetyt arvot ja niihin liittyvät määritetyt avaimet kartalta.
Aseta keySet()Se palauttaa Set-näkymän, joka sisältää kaikki avaimet.
AsetaentrySet()Se palauttaa Set-näkymän, joka sisältää kaikki avaimet ja arvot.
void clear ()Sitä käytetään kartan nollaamiseen.
V-laskenta (K-avain, BiFunction-uudelleenkuvausfunktio)Sitä käytetään määritetyn avaimen ja sen nykyisen kartoitetun arvon (tai nollan, jos nykyistä kartoitusta ei ole) määrittämiseen.
V computeIfAbsent (K-näppäin, Funktiokartoitustoiminto)Sitä käytetään sen arvon laskemiseen käyttämällä annettua kuvausfunktiota, jos määritettyä avainta ei ole jo liitetty arvoon (tai se on kuvattu nollaan), ja syöttää sen tähän karttaan, ellei se ole nolla.
V computeIfPresent (K-näppäin, BiFunction-uudelleenkuvausfunktio)Sitä käytetään uuden kuvauksen laskemiseen avaimella ja sen nykyisellä kuvatulla arvolla, jos määritetyn avaimen arvo on läsnä ja ei ole nolla.
boolean sisältääValue(objektiarvo)Tämä menetelmä palauttaa tosi, jos jokin arvoa vastaava arvo on kartassa, muussa tapauksessa palauttaa epätosi.
boolean sisältääKey(Objektiavain)Tämä menetelmä palauttaa tosi, jos jokin avainta vastaava avain on kartassa, muussa tapauksessa palauttaa epätosi.
boolen yhtä kuin (objekti o)Sitä käytetään vertaamaan määritettyä objektia karttaan.
void forEach (kahden kuluttajan toiminta)Se suorittaa annetun toiminnon jokaiselle kartan merkinnälle, kunnes kaikki merkinnät on käsitelty tai toiminto tekee poikkeuksen.
V get (objektiavain)Tämä menetelmä palauttaa objektin, joka sisältää avaimeen liittyvän arvon.
V getOrDefault (Objektiavain, V oletusarvo)Se palauttaa arvon, johon määritetty avain on kartoitettu, tai oletusarvon, jos kartta ei sisällä avaimelle kartoitusta.
int hashCode()Se palauttaa kartan hash-koodin arvon
boolean isEmpty()Tämä menetelmä palauttaa tosi, jos kartta on tyhjä; palauttaa false, jos se sisältää vähintään yhden avaimen.
V yhdistä (K-avain, V-arvo, BiFunction-uudelleenkuvaustoiminto)Jos määritettyä avainta ei ole jo liitetty arvoon tai se on liitetty tyhjään, liittää sen annettuun ei-nolla-arvoon.
V korvaa (K-avain, V-arvo)Se korvaa määritetyn avaimen määritetyn arvon.
boolen korvaa (K-avain, V vanha arvo, V uusi arvo)Se korvaa vanhan arvon määritetyn avaimen uudella arvolla.
void korvaa kaikki (BiFunction-toiminto)Se korvaa jokaisen merkinnän arvon tuloksella, jolla kyseistä toimintoa kutsutaan kyseisessä merkinnässä, kunnes kaikki merkinnät on käsitelty tai funktio tekee poikkeuksen.
Kokoelman arvot()Se palauttaa kokoelmanäkymän kartan sisältämistä arvoista.
int size ()Tämä menetelmä palauttaa merkintöjen määrän kartalla.

Map.Entry Interface

Entry on Mapin aliliittymä. Joten pääsemme siihen Map.Entry-nimellä. Se palauttaa kokoelmanäkymän kartasta, jonka elementit ovat tätä luokkaa. Se tarjoaa menetelmiä avaimen ja arvon saamiseksi.

Map.Entry-käyttöliittymän menetelmät

MenetelmäKuvaus
K getKey()Sitä käytetään avaimen hankkimiseen.
V getValue()Sitä käytetään arvon hankkimiseen.
int hashCode()Sitä käytetään hajakoodin saamiseksi.
V setArvo(V-arvo)Sitä käytetään korvaamaan tätä merkintää vastaava arvo määritetyllä arvolla.
boolen yhtä kuin (objekti o)Sitä käytetään vertaamaan määritettyä objektia muihin olemassa oleviin objekteihin.
staattinenVertailijacomparingByKey()Se palauttaa vertailijan, joka vertaa objekteja luonnollisessa järjestyksessä avaimella.
staattinen vertailijacomparingByKey(Comparator cmp)Se palauttaa vertailijan, joka vertaa objekteja avaimella käyttämällä annettua vertailijaa.
staattinenVertailijacomparingByValue()Se palauttaa vertailijan, joka vertaa objekteja luonnollisessa järjestyksessä arvon mukaan.
staattinen vertailijacomparingByValue(Comparator cmp)Se palauttaa vertailijan, joka vertaa objekteja arvon mukaan käyttämällä annettua vertailijaa.

Java-karttaesimerkki: ei-yleinen (vanha tyyli)

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

Lähtö:

 1 Amit 2 Jai 5 Rahul 6 Amit 

Java-karttaesimerkki: yleinen (uusi tyyli)

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

Lähtö:

 102 Rahul 100 Amit 101 Vijay 

Java-karttaesimerkki: 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); } } 

Lähtö:

 100=Amit 101=Vijay 102=Rahul 

Java-karttaesimerkki: comparingByKey() laskevassa järjestyksessä

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

Lähtö:

 102=Rahul 101=Vijay 100=Amit 

Java-karttaesimerkki: 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); } } 

Lähtö:

 100=Amit 102=Rahul 101=Vijay 

Java-karttaesimerkki: comparingByValue() laskevassa järjestyksessä

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

Lähtö:

 101=Vijay 102=Rahul 100=Amit