HashMap (nebo HashTable) je datová struktura, která umožňuje rychlý přístup k datům pomocí párů klíč-hodnota. Třída Java HashMap rozšiřuje Abstraktní mapa třídy a implementuje rozhraní Map, které mu umožňuje přístup ke spoustě operací. HashMaps mají dva parametry typu – K a V, kde K ukládá klíče a V ukládá hodnoty v každé HashMap.

HashMap vám umožňuje mapovat klíče na konkrétní hodnotu a ukládat položky v náhodném pořadí. V tomto článku se dozvíte, jak používat třídu HashMap Java k ukládání, načítání, aktualizaci a mazání dat.

Vytvoření Java HashMap

Třída Java HashMap má čtyři konstruktory. Výchozí konstruktor je nejoblíbenější, umožňuje vám vytvořit prázdnou HashMap, která bude mít výchozí kapacitu 16.

importJáva.util.HashMap;
veřejnosttřídaHlavní{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů){
//vytvoření HashMap
HashMap<Celé číslo, řetězec> FruitMap = nová HashMap<Celé číslo, řetězec>();
}
}

The třída Java výše používá výchozí konstruktor HashMap k vytvoření datové struktury nazvané

ovoceMapa. Objekt fruitsMap bude ukládat data, která mají celočíselný klíč a řetězcovou hodnotu. Protože však třída HashMap implementuje rozhraní Map, může uložit hodnotu null buď do pole klíče, pole hodnoty nebo do obou.

Ukládání dat do HashMapu

Pomocí třídy HashMap můžete provádět několik operací. The dát (klíč K, hodnota V) metoda patří mezi její nejoblíbenější metody a umožňuje ukládat data pomocí páru klíč-hodnota, kde se každý klíč mapuje na hodnotu.

importJáva.util.HashMap;
veřejnosttřídaHlavní{
veřejnoststatickýprázdnotahlavní(Řetězec[] argumentů){
//vytvoření HashMap
HashMap<Celé číslo, řetězec> FruitMap = nová HashMap<Celé číslo, řetězec>();
//přidat položky do HashMap
ovoceMap.put (3,"Hruška");
ovoceMap.put (6,"Mango");
ovoceMap.put (7,"Švestka");
ovoceMap.put (4,"Jablko");
ovoceMap.put (1,"oranžový");
ovoceMap.put (5,"Bobule");
ovoceMap.put (2,"Meloun");
}
}

Výše aktualizovaná třída používá metodu put() k přidání několika druhů ovoce a jejich klíče do existující datové struktury fruitsMap. Je důležité si uvědomit, že výše uvedený kód přidává data do mapy náhodně. Tento detail bude užitečný, když začnete číst data z HashMap.

Čtení dat z hashmap

Existuje několik způsobů, jak číst data z HashMap. Metoda, kterou použijete, bude záviset na tom, jak chcete data vypadat, nebo dokonce na typu dat, která chcete načíst.

Načtěte objekt HashMap

Pokud chcete načíst data jako objekt, můžete jednoduše přistupovat k objektu HashMap, což je v příkladu níže fruitsMap.

//Zobrazí všechny položky jako objekt
Systém.ven.println(ovoceMapa);

Přidáním výše uvedeného řádku kódu do třídy Main se v konzole vytiskne následující výstup:

{1=Pomeranč, 2=Meloun, 3=Hruška, 4=Jablko, 5=Bobule, 6=Mango, 7=Švestka}

Ačkoli každá hodnota byla do HashMap přidána náhodně, z výstupu uvidíte, že HashMap ukládá hodnoty ve vzestupném pořadí na základě klíče přiřazeného každé hodnotě. Toto je funkce, která staví HashMaps před jiné datové struktury, jako je Struktura dat pole které podporují pouze lineární ukládání.

Získejte všechna data jednotlivě

Pokud chcete získat všechna data jednotlivě, můžete použít pro metoda, která vám umožní procházet HashMap a tisknout každou hodnotu a její odpovídající klíč. Tato metoda využívá rozhraní Map, které implementuje třída HashMap.

//zobrazí všechny položky s iterátorem 
pro (HashMap. Vstup<Celé číslo, řetězec> ovoce: fruitsMap.entrySet())
{
System.out.println("Klíč: " + fruit.getKey() + " Hodnota: " + fruit.getValue());
}

Přidání výše uvedené metody do vašeho kódu vytiskne následující výstup ve vaší konzole:

Klíč: 1 Hodnota: Oranžová
Klíč: 2 Hodnota: Meloun
Klíč: 3 Hodnota: Hruška
Klíč: 4 Hodnota: Apple
Klíč: 5 Hodnota: Bobule
Klíč: 6 Hodnota: Mango
Klíč: 7 Hodnota: Švestka

Získejte konkrétní hodnotu

Třída HashMap má a dostat() metoda, která vezme klíč a vrátí hodnotu namapovanou na tento klíč.

//načtení jedné položky
Systém.ven.println(ovoceMapa.dostat(4));

Řádek kódu výše vytiskne v konzole následující výstup:

Jablko

Aktualizace dat v HashMap

Po vytvoření a naplnění objektu HashMap můžete použít nahradit() způsob aktualizace libovolné položky na mapě. Metoda replace() vyžaduje dva nebo tři argumenty. První metoda replace() přebírá klíč spojený s existující položkou spolu s novou hodnotou, kterou na ni chcete namapovat.

// nahrazení jedné položky
ovoceMap.replace (4, "Hrozny");
Systém.ven.tisk(ovoceMapa);

Spuštěním výše uvedeného kódu se v konzole vytiskne následující objekt:

{1=Pomeranč, 2=Meloun, 3=Hruška, 4=Hrozny, 5=Bobule, 6=Mango, 7=Švestka}

Jak můžete vidět z objektu výše, „Hrozny“ se mapují na 4, které se dříve mapovaly na „Apple“.

Druhá metoda replace() přebírá klíč spojený s existující položkou, existující položkou a hodnotou nahrazení.

// nahrazení jedné položky
ovoceMap.replace (4, "Jablko", "Hrozny");
Systém.ven.tisk(ovoceMapa);

Výše uvedený kód vytiskne v konzole následující objekt:

{1=Pomeranč, 2=Meloun, 3=Hruška, 4=Hrozny, 5=Bobule, 6=Mango, 7=Švestka}

Smazání dat z hashmap

Můžete buď odstranit konkrétní položku z vaší HashMap pomocí odstranit() nebo smažte všechna data pomocí Průhledná() metoda. Metoda remove() přebírá jeden nebo dva argumenty. První metoda odebrání převezme klíč spojený s hodnotou, kterou chcete odstranit:

//smazání jedné položky
ovoceMapa.odstranit(5);
Systém.ven.println(ovoceMapa);

Výše uvedený kód vytiskne v konzole následující objekt:

{1=Pomeranč, 2=Meloun, 3=Hruška, 4=Jablko, 6=Mango, 7=Švestka}

Aktualizovaný objekt ukazuje, že položka s párem klíč-hodnota 5 a „Berries“ již není součástí FruitMap. Druhá metoda remove() přebírá klíč a hodnotu, na kterou se mapuje.

//smazání jedné položky
fruitsMap.remove (5, "Bobule");
Systém.ven.println(ovoceMapa);

Výše uvedený kód také vytiskne následující objekt v konzole:

{1=Pomeranč, 2=Meloun, 3=Hruška, 4=Jablko, 6=Mango, 7=Švestka}

Metoda clear() nebere žádné argumenty a vrací void.

ovoceMapa.Průhledná();
Systém.ven.println(ovoceMapa);

Spuštěním výše uvedeného kódu se v konzole vytiskne následující prázdný objekt:

{}

Nyní můžete provádět operace CRUD na Java HashMap

HashMaps jsou jednou z několika populárních datových struktur, které potřebujete znát. Tento článek vás naučí, jak provádět operace CRUD na Java HashMaps. HashMap je velmi užitečná datová struktura, její hlavní předností je, že je to jedna z nejefektivnějších datových struktur díky své přístupové rychlosti. Použití je však také velmi pohodlné, protože umožňuje náhodné ukládání.