Un dels temes més interessants de Java és la interfície Maprepresenta un mapatge entre una clau i un valor.Sovint s’entén malament com un subtipus de interfície a Java.Aquest article sobre Java Map Interface us ajudarà a comprendre i dominar el funcionament d’un mapa .
A continuació s’enumeren els temes tractats en aquest article:
- Interfície de mapa Java
- Característiques de la interfície del mapa
- Jerarquia de mapes de Java
- Mètodes a la interfície de mapa de Java
- Implementacions d'Interfície de Mapes
Interfície de mapa Java
Un mapa a Java és un objecte que assigna les claus a valors i està dissenyat per a cerques més ràpides. Les dades s’emmagatzemen en parells valor-clau i cada clau és única. Cada clau assigna un valor, d’aquí el nom. Aquests parells clau-valor s’anomenen entrades de mapa.
A la , java.util.Map és un que inclou signatures de mètodes per a la inserció, eliminació i recuperació d'elements basats en una clau. Amb aquests mètodes, és una eina perfecta per fer servir per assignar associacions de valors-claus, com ara diccionaris.
Característiques de la interfície del mapa
- La interfície de mapa no és un autèntic subtipus d’interfície de col·lecció, per tant,les seves característiques i comportaments són diferents de la resta de tipus de col·lecció.
- Proporcionatres vistes de col·lecció: conjunt de claus, conjunt d’assignacions de valor-clau i col·lecció de valors.
- AMapano pot contenir claus duplicades i cada clau pot assignar-se a un valor com a màxim. Algunes implementacions permeten la clau nul·la i el valor nul ( HashMap i LinkedHashMap ) però alguns no ( Mapa d’arbres).
- La interfície del mapa no garanteix l’ordre de les assignacions, però depèn de la implementació. Per exemple, HashMap no garanteix l'ordre dels mapatges però Mapa d’arbres fa.
- La classe AbstractMap proporciona una implementació esquelètica de la interfície Java Map i de la major part del mapa concret classes amplieu la classe AbstractMap i implementeu els mètodes necessaris.
Ara que ja teniu una idea de la interfície del mapa és a dir, anem endavant i comprovem la jerarquia de Java Map.
Jerarquia de mapes de Java
Hi ha dues interfícies que implementen el mapa a Java: Map i Mapa ordenat. I hi ha classes d'implementació populars de Map a Java HashMap, TreeMap , i LinkedHashMap. La jerarquia del mapa de Java es dóna a continuació:
Abans de comprovar les tres classes d’implementació de la interfície de mapa de Java esmentades anteriorment, aquí teniu alguns mètodes habituals que podeu trobar quan treballeu amb el mapa.
Mètodes a la interfície de mapa de Java
Mètodes | Descripció |
public put (clau d'objecte, valor d'objecte) | Aquest mètode insereix una entrada al mapa |
públicvoid putAll (mapa del mapa) | Aquest mètode insereix el mapa especificat en aquest mapa |
Eliminació d'objectes públics (clau d'objecte) | S'utilitza per suprimir una entrada per a la clau especificada |
públic Establir keySet () | Torna la vista Establir que conté totes les claus |
públic Set entrySet () | Torna la vista Establir que conté totes les claus i valors |
void clear () | S'utilitza per restablir el mapa |
public void putIfAbsent (clau K, valor V) | Insereix el valor especificat amb la clau especificada al mapa només si encara no està especificat |
public Object get (clau d'objecte) | Retorna el valor de la clau especificada |
booleà públic conté la clau (clau d'objecte) | S'utilitza per buscar la clau especificada des d'aquest mapa |
Implementacions de Mapa
Hi ha diversos que implementen el mapa de Javaperò hi ha tres implementacions principals i de propòsit generalHashMap, TreeMap i LinkedHashMap.Vegem les característiques i els comportaments de cada implementació amb un exemple
Classe HashMap
La classe més comuna que implementa la interfície Java Map és HashMap. És una implementació basada en taules de hash de la interfície Map.Implementa totes les operacions del mapai permet valors nuls i una clau nul·la. A més, aquesta classe no manté cap ordre entre els seus elements. Aquí teniu un exemple de programa que demostra la classe HashMap.
paquet MyPackage import java.util. * class HashMapExample {public static void main (String [] args) {Mapa cursos = nou HashMap () // Afegiu alguns cursos. courses.put ('Cursos Java', nou enter (6)) courses.put ('Cursos al núvol', nou enter (7)) courses.put ('Cursos de programació', nou enter (5)) courses.put (' Cursos de ciències de dades ', nou número enter (2)) System.out.println (' Total cursos: '+ courses.size ()) Setst = courses.entrySet () per a (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Cursos Java' if (courses.containsKey (searchKey)) System.out.println ('Total trobat' + courses.get (searchKey) + '' + searchKey)}}
Sortida
Total de cursos: 4 Cursos al núvol: 7 Cursos de programació: 5 Cursos de ciències de les dades: 2 Cursos Java: 6 Total trobats 6 Cursos Java
Al programa anterior, he utilitzat molts mètodes esmentats a la taula. En primer lloc, el put () el mètode insereix 4 entrades al mapa i el fitxer mida () El mètode del pas següent mostra la mida del mapa (total de parells clau-valor). Després, al següent pas, el fitxer entrySet () el mètode retorna tots els parells clau-valor. El programa també mostra com fer-ne ús aconseguir() mètode per cercar un valor mitjançant la clau associada.
Passem a la següent classe que implementa la interfície Java Map - TreeMap.
com sortir d'un programa java
Classe TreeMap
Aquesta implementació utilitza l'arbre vermell-negre com a subjacent estructura de dades . Un TreeMap s’ordena segons l’ordenació natural de les seves claus o mitjançant un comparador proporcionat en el moment de la creació. Aquesta implementació no permet nuls, però mantéordre sobre els seus elements. Aquí teniu un exemple de programa que demostra la classe TreeMap.
paquet MyPackage import java.util. * class TreeMapEx {public static void main (String [] args) {Mapa cursos = nou TreeMap () // Afegiu alguns cursos. courses.put ('Cursos Java', nou enter (3)) courses.put ('AWS Cursos', nou enter (7)) courses.put ('Cursos de programació', nou enter (8)) courses.put (' Cursos de ciències de dades ', nou número enter (2)) System.out.println (' Total cursos: '+ courses.size ()) Setst = courses.entrySet () per a (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}
Sortida
Total de cursos: 4 cursos AWS: 7 cursos de ciència de dades: 2 cursos Java: 3 cursos de programació: 8
A la sortida, els elements del mapa s’imprimeixen en un estricte ordre lexicogràfic, que no apareix en els exemples anteriors de HashMap. La següent classe que comentarem és LinkedHashMap .
Classe LinkedHashMap
Com el seu nom indica, aquesta implementació de la interfície Java Map utilitza una taula de hash i una llista enllaçada com a estructures de dades subjacents. Per tant, l’ordre d’un LinkedHashMap ésprevisible, amb l'ordre d'inserció com a ordre predeterminat. A més, permet nuls com a HashMap. Aquí teniu un exemple de programa que demostra la classe TreeMap.
paquet MyPackage import java.util. * public class LinkedHashMapExample {public static void main (String a []) {LinkedHashMap courses = new LinkedHashMap () courses.put ('Java Courses', new Integer (3)) courses.put (' Cloud Courses ', nou Integer (7)) courses.put (' Programació de cursos ', nou Integer (8)) courses.put (' Data Science Courses ', nou Integer (2)) // Imprimeix els elements en el mateix ordre // a mesura que s'inserien System.out.println (cursos) System.out.println ('Total cursos:' + courses.size ()) System.out.println ('Conté la clau' Hadoop '?' + courses.containsKey ('Hadoop')) System.out.println ('Obtenció de valor per a la clau' Programació de cursos ':' + courses.get ('Programació de cursos')) System.out.println ('El mapa està buit?' + Courses.isEmpty ()) System.out.println ('elimina l'element' Cloud Courses ':' + courses.remove ('Cloud Courses')) System.out.println (courses)}}
Sortida
{Cursos Java = 3, Cursos al núvol = 7, Cursos de programació = 8, Cursos de ciències de les dades = 2} Total cursos: 4 Conté la clau 'Hadoop'? false Obtenir valor per a la clau 'Cursos de programació': 8 El mapa està buit? element de supressió fals 'Cursos al núvol': 7 {Cursos Java = 3, Cursos de programació = 8, Cursos de ciències de dades = 2}
L'exemple de programa és bastant senzill d'entendre. He utilitzat alguns mètodes bàsics per demostrar el funcionament de LinkeHashMap a Java. Com he dit anteriorment, a part d'aquests tres, hi ha moltes altres classes que implementen la interfície Java Map.
Això ens porta al final d’aquest article sobre la ‘Interfície de mapes de Java’. He tractat un dels temes interessants de Java, que és la interfície de mapes a Java.
Assegureu-vos de practicar el màxim possible i de recuperar la vostra experiència.
Consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. Estem aquí per ajudar-vos en tots els passos del vostre viatge, per convertir-vos en una pregunta a part d’aquestes entrevistes java, oferim un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java.
Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d'aquesta 'interfície de mapa java' article i ens posarem en contacte amb vostè el més aviat possible.