Hoe de Java TreeMap-gegevensstructuur te gebruiken?

Hoe de Java TreeMap-gegevensstructuur te gebruiken?

De klasse Java TreeMap slaat gegevens op in een boomstructuur met behulp van een kaartinterface. Deze klasse breidt de klasse AbstractMap uit en, net als de bovenliggende klasse, heeft TreeMap twee typeparameters. Een van de typeparameters vertegenwoordigt de sleutels in de TreeMap, terwijl de andere de waarden vertegenwoordigt.





De TreeMap-gegevensstructuur slaat sleutel-waardeparen op en stelt u in staat CRUD-bewerkingen op deze gegevens uit te voeren.





Een TreeMap maken in Java

De klasse TreeMap heeft vier constructors die u kunt gebruiken om een ​​nieuw TreeMap-object te maken. De standaardconstructor is de meest populaire van de vier. Deze constructor gebruikt geen argumenten en genereert een lege boomstructuur.





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

De bovenstaande code genereert een lege boomkaart genaamd klanten .

De TreeMap-gegevensstructuur vullen

De leggen() methode voegt een item toe aan een TreeMap-object. Er zijn twee argumenten voor nodig: een sleutel en de waarde ervan. U kunt items in willekeurige volgorde aan de boomkaart toevoegen en de gegevensstructuur zal ze in oplopende volgorde opslaan, afhankelijk van hun sleutels.



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

De bovenstaande code voegt vijf klanten, in willekeurige volgorde, toe aan de boomkaart van de klant.

zoek uit wiens nummer het is

Items in een TreeMap bekijken

De klasse TreeMap slaat zijn gegevens op in een object. Dus om alle items in een boomkaart te zien, kunt u eenvoudig het boomkaartobject naar de console afdrukken:





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

De bovenstaande code drukt de volgende uitvoer af naar de console:

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

Merk op dat het bovenstaande object de items in oplopende volgorde weergeeft. U kunt elk item en de bijbehorende sleutel ook bekijken met een Java for-lus .





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

De bovenstaande code drukt de volgende uitvoer af naar de console:

beste site om c++ te leren
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

Items in een TreeMap bijwerken

Met de klasse TreeMap kunt u een bestaand item bijwerken met de vervangen() methode. Er zijn twee vervangingsmethoden. De eerste methode neemt een bestaande sleutel en de nieuwe waarde waaraan u de bestaande sleutel wilt toewijzen.

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

De bovenstaande code drukt het volgende object af in de console:

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

Zoals je kan zien Kim Brown is nu Kim Smith . De tweede methode Replace() neemt een bestaande sleutel, de huidige waarde van de sleutel en de nieuwe waarde die u aan de sleutel wilt toewijzen.

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

De bovenstaande code drukt het volgende object af in de console:

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

In het bovenstaande object Michelle Noah vervangt Jim Riley .

Items verwijderen uit de TreeMap

Als u een enkel item van de boomkaart wilt verwijderen, verwijderen() methode is uw enige optie. Het neemt de sleutel die is gekoppeld aan het item dat u wilt verwijderen en retourneert de verwijderde waarde.

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

Als u de bovenstaande code uitvoert, wordt het volgende object naar de console afgedrukt:

hoe een bewegende achtergrond te hebben op Windows 10
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Deze Java-klasse heeft ook een Doorzichtig() methode waarmee u alle items in de boomstructuurkaart kunt verwijderen.

De TreeMap versus de HashMap Java-klasse

TreeMap en HashMap zijn twee van de meer populaire Java-kaartklassen. Ze breiden allebei de klasse AbstractMap uit. Deze relatie geeft de klassen TreeMap en HashMap toegang tot veel van dezelfde functies.

Er zijn echter enkele opmerkelijke verschillen tussen deze twee kaartklassen. De TreeMap gebruikt een rood-zwarte boomimplementatie van de kaartinterface, terwijl de HashMap een hashtabel gebruikt. Met HashMap kunt u een enkele null-sleutel opslaan, terwijl TreeMap dat niet doet. Ten slotte is een HashMap sneller dan een TreeMap. De algoritmische snelheid van de eerste is O(1), die van de laatste is O(log(n)).