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:
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ä.
Luokka | Kuvaus |
---|---|
HashMap | HashMap on Mapin toteutus, mutta se ei ylläpidä järjestystä. |
LinkedHashMap | LinkedHashMap 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. |
Aseta | 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. |
staattinen | Se palauttaa vertailijan, joka vertaa objekteja luonnollisessa järjestyksessä avaimella. |
staattinen vertailija | Se palauttaa vertailijan, joka vertaa objekteja avaimella käyttämällä annettua vertailijaa. |
staattinen | Se palauttaa vertailijan, joka vertaa objekteja luonnollisessa järjestyksessä arvon mukaan. |
staattinen vertailija | 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