Mi az a Java HashMap és hogyan kell használni?
A Java HashMap osztálya lehetővé teszi az adatok kulcs-érték párokban történő mentését. Ez nemcsak megkönnyíti a lista lekérését és kezelését, hanem számos hozzáférési lehetőséget is biztosít. Itt áttekintjük a legfontosabb módszereket.
Mik azok a HashMap-ek Java-ban?
Az adatok tárolására és lekérésére számos módszer létezik. Az, hogy melyik tárolási módszer a legalkalmasabb, attól függ, hogy hogyan kívánja felhasználni az adatokat. Sok esetben a Java HashMap osztály valószínűleg a legjobb megoldás. Más módszerekkel ellentétben ez az osztály az adatokat kulcs-érték párokként tárolja. Ez azt jelenti, hogy minden kulcshoz pontosan egy érték van rendelve. Ha egy értéket szeretne lekérni, a megfelelő kulccsal megkaphatja a kívánt eredményt. A kulcsok és értékek teljesen különböző adattípusokból állhatnak, beleértve karakterláncokat, számokat vagy más objektumokat.
A Java HashMap osztály számos előnyt kínál. Az első az, hogy gyors keresést végezhet a programozási nyelven belül. A kulcs-érték megközelítés biztosítja azt is, hogy egy kulcshoz ne rendeljenek több értéket, így elkerülve az ismétlődéseket. Ugyanakkor ugyanazt az objektumot többször is hozzáadhatja különböző kulcsokkal. Ez a típusú tárolási és keresési funkció pozitív hatással van a teljesítményre, összehasonlítva a merev listákkal, amelyek lényegesen kevésbé rugalmasak. Ez egyben a kulcs-érték tárolók egyik fő előnye is, amelyek ugyanazt az elvet alkalmazzák. A következő szakaszokban bemutatjuk, hogyan lehet Java HashMap-eket létrehozni és használni.
Hogyan lehet HashMap-eket létrehozni és használni Java-ban
Ahhoz, hogy új HashMap-et hozzon létre Java-ban, először importálnia kell az osztályt. Ehhez használja a Java import parancsot. A kód így néz ki:
import java.util.HashMap;
HashMap<String, String> nameOfTheHashMap = new HashMap<String, String> ();javaA két adattípus, amelyeket vessző választ el egymástól (ebben az esetben String, String), a kulcs és az érték.
Új HashMap létrehozása
A Java HashMaps működésének jobb megértése érdekében egy egyszerű példát hoztunk. Példánkban van egy ügyféllista, amelyet egy vállalat tárolni szeretne, és amelyhez bármikor hozzá szeretne férni. A lista tartalmazza az egyes ügyfelek nevét és egyedi ügyfélszámát. Bár az ügyfélszám (a példánkban a kulcs) mindig egyedi, előfordulhat, hogy több ügyfélnek is ugyanaz a neve. Mindegyik ügyfélnek azonban megvan a saját egyedi száma. Ez a szám egész szám adattípusként, a nevek pedig karakterláncként vannak rögzítve. Így állíthatjuk be ezt a Java HashMap-ban:
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
}
}javaElemek hozzáadása
Most már megvan a Java HashMap, de még üres. Új kulcs-érték párok hozzáadásához a put() metódust fogjuk használni. Így működik:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList);
}
}javaA System.out.println parancsot használjuk az ügyfél listánk megjelenítéséhez. A kimenetnek így kell kinéznie:
{1077=Jerry Mowry, 15312=Peter Smith, 73329=Maria Grosso}javaElemek lekérése
Most létrehoztunk egy ügyféllistát, amely számos bejegyzést tartalmazhat. Azt is szeretnénk, hogy minden egyes ügyfélbejegyzéshez külön-külön hozzáférhessünk. Ehhez átadjuk a kulcsot a get() metódusnak. Íme egy példa arra, hogyan működik ez:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.get(1077));
}
}javaCsak a „Jerry Mowry” név jelenjen meg.
Bejegyzések törlése
Ha egy bejegyzést szeretne eltávolítani, használja a remove() módszert. Íme egy példa a módszer használatára:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
customerList.remove(1077);
System.out.println(customerList);
}
}javaA kimenet most így néz ki:
{15312=Peter Smith, 73329=Maria Grosso}javaEgy másik lehetőség az egész lista törlése. Ehhez használja a clear() módszert.
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
customerList.clear();
System.out.println(customerList);
}
}javaMost az egyetlen kimenet, amit kapunk, a következő:
{ }javaHogyan lehet meghatározni a bejegyzések számát?
Bár a Java HashMap meglehetősen egyszerű, ezt az osztályt nagyobb, összetettebb projektek kezelésére is használhatja. Nagyobb projektek esetén érdemes meghatározni a bejegyzések pontos számát. Végül is ez az Ön teljes ügyfélkörét jelenti. Ehhez használhatja size(). Az eljárás a következő:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.size());
}
}javaPéldánkban a 3-as szám jelenik meg.
Hogyan lehet csak a kulcsokat vagy az értékeket megjeleníteni?
A for-each ciklussal olyan listát is létrehozhat, amely csak a kulcsokat vagy csak az értékeket tartalmazza. A kulcsok lekéréséhez használja a keySet() metódust, az értékek lekéréséhez pedig a values() metódust. A következő kódpéldában values() használjuk:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
for (String i : customerList.values()) {
System.out.println(i);
}
}
}javaA kimenet:
Jerry Mowry
Peter Smith
Maria GrossojavaHashMap ellenőrzése, hogy tartalmaz-e egy adott értéket vagy kulcsot
Egy adott bejegyzés elérésén túl azt is ellenőrizheti, hogy egy bejegyzés már létezik-e a Java HashMap-ben. Ehhez használhatja a containsKey() (kulcsokhoz) és a containsValue() (értékekhez) metódust. Ha az elem szerepel, a kimenet „true” lesz. Ha az elem nem szerepel a HashMap-ben, a kimenet „false” lesz. A két metódus így működik:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.containsKey(15312));
System.out.println(customerList.containsValue("Stuart Miller");
}
}javaMivel a „15312” kulcs szerepel, de a „Stuart Miller” érték nem, a kimenet így néz ki.
true
falsejava