Come utilizzare la struttura dati di Java TreeMap

Come utilizzare la struttura dati di Java TreeMap

La classe Java TreeMap memorizza i dati in una struttura ad albero utilizzando un'interfaccia mappa. Questa classe estende la classe AbstractMap e, come la sua classe padre, TreeMap ha due parametri di tipo. Uno dei suoi parametri di tipo rappresenta le chiavi nella TreeMap, mentre l'altro rappresenta i valori.





La struttura dati TreeMap memorizza coppie chiave-valore e consente di eseguire operazioni CRUD su questi dati.





Come creare una mappa ad albero in Java

La classe TreeMap ha quattro costruttori che puoi usare per creare un nuovo oggetto TreeMap. Il costruttore predefinito è il più popolare dei quattro. Questo costruttore non accetta argomenti e genera una mappa ad albero vuota.





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

Il codice sopra genera una mappa ad albero vuota chiamata clienti .

Popolamento della struttura dati di TreeMap

Il mettere() aggiunge un elemento a un oggetto TreeMap. Richiede due argomenti: una chiave e il suo valore. Puoi aggiungere elementi alla mappa ad albero in qualsiasi ordine casuale e la struttura dei dati li memorizzerà in ordine crescente, in base alle loro chiavi.



// 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");

Il codice sopra aggiunge cinque clienti, in ordine casuale, alla mappa ad albero dei clienti.

Visualizzazione di elementi in una TreeMap

La classe TreeMap memorizza i suoi dati in un oggetto. Quindi, per vedere tutti gli elementi in una mappa ad albero puoi semplicemente stampare l'oggetto mappa ad albero sulla console:





come mostrare lo schermo del telefono sul computer
// View all tree map items as an object 
System.out.println(customers);

Il codice sopra stampa il seguente output sulla console:

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

Si noti che l'oggetto sopra mostra gli elementi in ordine crescente. Puoi anche visualizzare ogni elemento e la relativa chiave utilizzando un ciclo for Java .





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

Il codice sopra stampa il seguente output sulla console:

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

Aggiornare gli elementi in una TreeMap

La classe TreeMap consente di aggiornare un elemento esistente utilizzando il file sostituire() metodo. Sono disponibili due metodi di sostituzione. Il primo metodo accetta una chiave esistente e il nuovo valore su cui si desidera mappare la chiave esistente.

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

Il codice sopra stampa il seguente oggetto nella console:

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

Come potete vedere Kim Brown è ora Kim Smith . Il secondo metodo replace() prende una chiave esistente, il valore corrente della chiave e il nuovo valore che si desidera mappare sulla chiave.

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

Il codice sopra stampa il seguente oggetto nella console:

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

Nell'oggetto sopra Michelle Noè sostituisce Jim Riley .

Eliminazione di elementi da TreeMap

Se vuoi rimuovere un singolo elemento dalla mappa ad albero, il rimuovere() il metodo è la tua unica opzione. Prende la chiave associata all'elemento che si desidera rimuovere e restituisce il valore eliminato.

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

L'esecuzione del codice precedente stampa il seguente oggetto sulla console:

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

Questo Classe Java ha anche un chiaro() metodo che consente di eliminare tutti gli elementi nella mappa ad albero.

La TreeMap contro la classe Java HashMap

TreeMap e HashMap sono due delle classi di mappe Java più popolari. Entrambi estendono la classe AbstractMap. Questa relazione fornisce alle classi TreeMap e HashMap l'accesso a molte delle stesse funzioni.

Tuttavia, ci sono alcune differenze degne di nota tra queste due classi di mappe. TreeMap utilizza un'implementazione dell'albero rosso-nero dell'interfaccia Map, mentre HashMap utilizza una tabella hash. HashMap ti consente di memorizzare una singola chiave nulla, mentre TreeMap no. Infine, una HashMap è più veloce di una TreeMap. La velocità algoritmica del primo è O(1) mentre quella del secondo è O(log(n)).