Et kort indeholder værdier på basis af nøgle, dvs. nøgle og værdipar. Hvert nøgle- og værdipar er kendt som en indgang. Et kort indeholder unikke nøgler.
java delt streng med skilletegn
Et kort er nyttigt, hvis du skal søge, opdatere eller slette elementer på basis af en nøgle.
Java korthierarki
Der er to grænseflader til implementering af Map i java: Map og SortedMap, og tre klasser: HashMap, LinkedHashMap og TreeMap. Hierarkiet af Java Map er angivet nedenfor:
Et kort tillader ikke dublerede nøgler, men du kan have duplikerede værdier. HashMap og LinkedHashMap tillader null nøgler og værdier, men TreeMap tillader ikke nogen null nøgle eller værdi.
Et kort kan ikke krydses, så du skal konvertere det til Set vha keySet() eller entrySet() metode.
klasse | Beskrivelse |
---|---|
HashMap | HashMap er implementeringen af Map, men det opretholder ikke nogen orden. |
LinkedHashMap | LinkedHashMap er implementeringen af Map. Den arver HashMap-klassen. Det opretholder indsættelsesrækkefølgen. |
Trækort | TreeMap er implementeringen af Map og SortedMap. Den opretholder stigende orden. |
Nyttige metoder til kortgrænseflade
Metode | Beskrivelse |
---|---|
V put(Objektnøgle, Objektværdi) | Det bruges til at indsætte en post i kortet. |
void putAll(Kortkort) | Det bruges til at indsætte det angivne kort i kortet. |
V putIfFraværende(K-nøgle, V-værdi) | Den indsætter kun den angivne værdi med den angivne nøgle i kortet, hvis den ikke allerede er angivet. |
V fjern (objektnøgle) | Den bruges til at slette en post for den angivne nøgle. |
boolesk fjern (objektnøgle, objektværdi) | Det fjerner de angivne værdier med de tilhørende specificerede nøgler fra kortet. |
Indstil keySet() | Det returnerer Set-visningen, der indeholder alle nøglerne. |
Sæt | Det returnerer Set-visningen, der indeholder alle nøglerne og værdierne. |
void clear() | Det bruges til at nulstille kortet. |
V compute (K-tast, BiFunction remappingFunction) | Den bruges til at beregne en mapping for den angivne nøgle og dens aktuelle kortlagte værdi (eller null, hvis der ikke er nogen aktuel mapping). |
V computeIfAbsent(K-tast, FunktionsmappingFunction) | Den bruges til at beregne dens værdi ved hjælp af den givne kortlægningsfunktion, hvis den angivne nøgle ikke allerede er knyttet til en værdi (eller er afbildet til null), og indtaster den i dette kort, medmindre den er null. |
V computeIfPresent(K-nøgle, BiFunction remappingFunction) | Den bruges til at beregne en ny mapping givet nøglen og dens aktuelle tilknyttede værdi, hvis værdien for den angivne nøgle er til stede og ikke er nul. |
boolean containsValue(Objektværdi) | Denne metode returnerer sand, hvis der findes en værdi svarende til værdien i kortet, ellers returnerer den falsk. |
boolean containsKey(Objektnøgle) | Denne metode returnerer sand, hvis der findes en nøgle svarende til nøglen i kortet, ellers returnerer den falsk. |
boolesk lig (Objekt o) | Det bruges til at sammenligne det specificerede objekt med kortet. |
void forEach (BiConsumer action) | Den udfører den givne handling for hver post i kortet, indtil alle poster er blevet behandlet, eller handlingen kaster en undtagelse. |
V get(Objektnøgle) | Denne metode returnerer det objekt, der indeholder den værdi, der er knyttet til nøglen. |
V getOrDefault(Objektnøgle, V defaultValue) | Det returnerer den værdi, som den angivne nøgle er knyttet til, eller defaultValue, hvis kortet ikke indeholder nogen tilknytning til nøglen. |
int hashCode() | Det returnerer hash-kodeværdien for kortet |
boolsk er tom() | Denne metode returnerer sand, hvis kortet er tomt; returnerer falsk, hvis den indeholder mindst én nøgle. |
V fletning (K nøgle, V værdi, BiFunction remapping Function) | Hvis den angivne nøgle ikke allerede er knyttet til en værdi eller er knyttet til null, knytter den til den givne ikke-nullværdi. |
V erstatte (K nøgle, V værdi) | Den erstatter den angivne værdi for en specificeret nøgle. |
boolesk erstatning (K-tast, V oldValue, V newValue) | Den erstatter den gamle værdi med den nye værdi for en specificeret nøgle. |
void replaceAll (BiFunction-funktion) | Den erstatter hver posts værdi med resultatet af at kalde den givne funktion på denne post, indtil alle poster er blevet behandlet, eller funktionen afgiver en undtagelse. |
Samlingsværdier() | Det returnerer en samlingsvisning af værdierne på kortet. |
int størrelse() | Denne metode returnerer antallet af poster på kortet. |
Kort.Entry Interface
Entry er undergrænsefladen til Map. Så vi får adgang til det via Map.Entry-navn. Det returnerer en samlingsvisning af kortet, hvis elementer er af denne klasse. Det giver metoder til at få nøgle og værdi.
Metoder til Map.Entry interface
Metode | Beskrivelse |
---|---|
K getKey() | Den bruges til at få en nøgle. |
V getValue() | Det bruges til at opnå værdi. |
int hashCode() | Det bruges til at få hashCode. |
V sætværdi(V-værdi) | Den bruges til at erstatte den værdi, der svarer til denne post, med den angivne værdi. |
boolesk lig (Objekt o) | Det bruges til at sammenligne det angivne objekt med de andre eksisterende objekter. |
statisk | Det returnerer en komparator, der sammenligner objekterne i naturlig rækkefølge på tasten. |
statisk komparator | Det returnerer en komparator, der sammenligner objekterne med nøgle ved hjælp af den givne komparator. |
statisk | Det returnerer en komparator, der sammenligner objekterne i naturlig rækkefølge efter værdi. |
statisk komparator | Det returnerer en komparator, der sammenligner objekterne efter værdi ved hjælp af den givne komparator. |
Eksempel på Java-kort: Ikke-generisk (gammel stil)
//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()); } } }
Produktion:
1 Amit 2 Jai 5 Rahul 6 Amit
Eksempel på Java-kort: Generisk (ny stil)
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()); } } }
Produktion:
102 Rahul 100 Amit 101 Vijay
Java-korteksempel: 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); } }
Produktion:
100=Amit 101=Vijay 102=Rahul
Java Map Eksempel: comparingByKey() i faldende rækkefølge
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); } }
Produktion:
102=Rahul 101=Vijay 100=Amit
Java-korteksempel: 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); } }
Produktion:
100=Amit 102=Rahul 101=Vijay
Java-korteksempel: comparingByValue() i faldende rækkefølge
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); } }
Produktion:
101=Vijay 102=Rahul 100=Amit