Com utilitzar l'estructura de dades de Java TreeMap

Com utilitzar l'estructura de dades de Java TreeMap

La classe Java TreeMap emmagatzema dades en una estructura d'arbre mitjançant una interfície de mapa. Aquesta classe amplia la classe AbstractMap i, com la seva classe pare, TreeMap té dos paràmetres de tipus. Un dels seus paràmetres de tipus representa les claus al TreeMap, mentre que l'altre representa els valors.





L'estructura de dades TreeMap emmagatzema parells clau-valor i us permet realitzar operacions CRUD amb aquestes dades.





Com crear un mapa d'arbre a Java

La classe TreeMap té quatre constructors que podeu utilitzar per crear un nou objecte TreeMap. El constructor predeterminat és el més popular dels quatre. Aquest constructor no pren arguments i genera un mapa d'arbre buit.





// Create a new tree map 
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();

El codi anterior genera un mapa d'arbre buit anomenat clients .

Omplint l'estructura de dades TreeMap

El posar() El mètode afegeix un element a un objecte TreeMap. Es necessiten dos arguments: una clau i el seu valor. Podeu afegir elements al mapa de l'arbre en qualsevol ordre aleatori i l'estructura de dades els emmagatzemarà en ordre ascendent, segons les seves claus.



// Populate a tree map 
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");

El codi anterior afegeix cinc clients, en ordre aleatori, al mapa de l'arbre de clients.

Visualització d'elements en un TreeMap

La classe TreeMap emmagatzema les seves dades en un objecte. Per tant, per veure tots els elements d'un mapa d'arbre, simplement podeu imprimir l'objecte del mapa d'arbre a la consola:





// View all tree map items as an object 
System.out.println(customers);

El codi anterior imprimeix la sortida següent a la consola:

{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Tingueu en compte que l'objecte de dalt mostra els elements en ordre ascendent. També podeu veure cada element i la seva clau corresponent utilitzant un bucle per a Java .





// View all items with an iterator 
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}

El codi anterior imprimeix la sortida següent a la consola:

quant dura una psu
Key: 101 Value: Kim Brown 
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones

Actualització d'elements en un TreeMap

La classe TreeMap us permet actualitzar un element existent mitjançant l' substituir () mètode. Hi ha dos mètodes de substitució. El primer mètode pren una clau existent i el valor nou al qual voleu assignar la clau existent.

// Replace existing value 
customers.replace(101,"Kim Smith");
System.out.println(customers);

El codi anterior imprimeix l'objecte següent a la consola:

{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}

Com pots veure Kim Brown és ara Kim Smith . El segon mètode replace() pren una clau existent, el valor actual de la clau i el valor nou que voleu assignar a la clau.

// Replace existing value 
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);

El codi anterior imprimeix l'objecte següent a la consola:

{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}

A l'objecte de dalt Michelle Noah substitueix Jim Riley .

Eliminació d'elements del TreeMap

Si voleu eliminar un únic element del mapa de l'arbre, el eliminar () El mètode és la vostra única opció. Pren la clau associada a l'element que voleu eliminar i retorna el valor suprimit.

// Remove an item 
customers.remove(104);
System.out.println(customers);

L'execució del codi anterior imprimeix l'objecte següent a la consola:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Això Classe Java també té a clar () mètode que us permet suprimir tots els elements del mapa de l'arbre.

El TreeMap vs. la classe Java HashMap

TreeMap i HashMap són dues de les classes de mapes de Java més populars. Tots dos amplien la classe AbstractMap. Aquesta relació dóna a les classes TreeMap i HashMap accés a moltes de les mateixes funcions.

Tanmateix, hi ha algunes diferències notables entre aquestes dues classes de mapes. El TreeMap utilitza una implementació d'arbre vermell-negre de la interfície del mapa, mentre que el HashMap utilitza una taula hash. HashMap us permet emmagatzemar una única clau nul·la, mentre que TreeMap no. Finalment, un HashMap és més ràpid que un TreeMap. La velocitat algorítmica del primer és O(1) mentre que la del segon és O(log(n)).