HashMap v Java
V ฤem je Hashmap Java?
HashMap v podstatฤ oznaฤuje jedineฤnรฉ klรญฤe k odpovรญdajรญcรญmu hodnoty kterรฉ lze v libovolnรฉm mรญstฤ zรญskat.
Vlastnosti Java Hashmap
a) hodnoty lze uloลพit do mapy vytvoลenรญm a klรญฤ โ hodnota pรกr. Hodnotu lze zรญskat pomocรญ klรญฤe pลedรกnรญm sprรกvnรฉ metodฤ.
b) Pokud ลพรกdnรฝ prvek existuje na mapฤ, vyvolรก to โNoSuchElementException'.
c) Pouze uklรกdรก HashMap reference objektลฏ. To je dลฏvod, proฤ je nemoลพnรฉ pouลพรญt primitivnรญ datovรฉ typy jako double nebo int. Pouลพijte obalovou tลรญdu (jako Integer nebo Double) namรญsto.
Pouลพitรญ HashMaps v Java Programy:
Nรญลพe jsou uvedeny dva zpลฏsoby, jak deklarovat hash mapu:
HashMap<String, Object> map = new HashMap<String, Object>(); HashMap x = new HashMap();
Dลฏleลพitรฉ metody hashmap
- zรญskat (klรญฤ objektu) โ Tรญm se vrรกtรญ hodnota spojenรก se zadanรฝm klรญฤem v tomto Java hashmap.
- put(KEY KEY, ลetฤzec VALUE) โ Tato metoda uloลพรญ zadanou hodnotu a pลidruลพรญ ji k zadanรฉmu klรญฤi v tรฉto mapฤ.
Java Pลรญklad hashmap
Nรกsleduje ukรกzkovรก implementace java Hash Map:
import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
public static void main(String[] args){
Map<String, String> objMap = new HashMap<String, String>();
objMap.put("Name", "Suzuki");
objMap.put("Power", "220");
objMap.put("Type", "2-wheeler");
objMap.put("Price", "85000");
System.out.println("Elements of the Map:");
System.out.println(objMap);
}
}
Vรฝstup:
Elements of the Map:
{Type=2-wheeler, Price=85000, Power=220, Name=Suzuki}
Pลรญklad: Odeberte hodnotu z HashMap na zรกkladฤ klรญฤe
import java.util.*;
public class HashMapExample {
public static void main(String args[]) {
// create and populate hash map
HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1,"Java");
map.put(2, "Python");
map.put(3, "PHP");
map.put(4, "SQL");
map.put(5, "C++");
System.out.println("Tutorial in Guru99: "+ map);
// Remove value of key 5
map.remove(5);
System.out.println("Tutorial in Guru99 After Remove: "+ map);
}
}
Vรฝstup:
Tutorial in Guru99: {1=Java, 2=Python, 3=PHP, 4=SQL, 5=C++}
Tutorial in Guru99 After Remove: {1=Java, 2=Python, 3=PHP, 4=SQL}
Dovolte nรกm poloลพit nฤkolik dotazลฏ samotnรฉ Hash mapฤ, abychom ji lรฉpe poznali
Q: Takลพe pane Hash Map, jak mohu zjistit, zda vรกm byl pลiลazen konkrรฉtnรญ klรญฤ?
A: Super, mลฏลพete se mnou pouลพรญt metodu obsahujeKey(Object KEY), vrรกtรญ booleovskou hodnotu, pokud mรกm hodnotu pro danรฝ klรญฤ.
Otรกzka: Jak najdu vลกechny dostupnรฉ klรญฤe, kterรฉ jsou na mapฤ?
A: Mรกm metodu s nรกzvem as sada klรญฤลฏ(), kterรก vrรกtรญ vลกechny klรญฤe na mapฤ. Pokud ve vรฝลกe uvedenรฉm pลรญkladu napรญลกete ลรกdek jako โ
System.out.println(objMap.keySet());
Vrรกtรญ se to an vรฝstup tak jako-
[Nรกzev, typ, vรฝkon, cena]
Podobnฤ, pokud potลebujete pouze vลกechny hodnoty, mรกm metodu hodnoty().
System.out.println(objMap.values());
Vrรกtรญ se to an vรฝstup tak jako-
[Suzuki, dvoukolka, 2, 220]
Otรกzka: Pลedpoklรกdejme, ลพe potลebuji z mapy odstranit pouze konkrรฉtnรญ klรญฤ, musรญm smazat celou mapu?
A: Ne kamarรกde!! Mรกm metodu odstranit(Object KEY), kterรฝ odstranรญ pouze tento konkrรฉtnรญ pรกr klรญฤโhodnota.
Otรกzka: Jak mลฏลพeme zkontrolovat, zda skuteฤnฤ obsahuje nฤjakรฉ pรกry klรญฤโhodnota?
A: Jen zkontrolujte, jestli jsem prรกzdnรฝ nebo ne!! Zkrรกtka pouลพรญvejte je prรกzdnรฝ() metoda proti mnฤ..


