Java HashMap (példákkal)

Ebben az oktatóanyagban példák segítségével megismerhetjük a Java HashMap osztályt és annak különféle műveleteit.

A HashMapJava gyűjtemények keretrendszere biztosítja a hash tábla adatstruktúrájának funkcionalitását.

Az elemeket kulcs / érték párokban tárolja . Itt a kulcsok egyedi azonosítók, amelyeket a térkép egyes értékeinek társításához használnak .

Az HashMaposztály megvalósítja a Map felületet.

Java HashMap implementáció

Hozzon létre egy HashMap-ot

A hash térkép létrehozásához java.util.HashMapelőször importálnunk kell a csomagot. A csomag importálása után a következőképpen hozhatunk létre hasmapokat a Java-ban.

 // hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();

A fenti kódban létrehoztunk egy hashmap számokat. Itt K jelentése a kulcs típusa, V pedig az értékek típusa. Például,

 HashMap numbers = new HashMap();

Itt a típusú kulcsot is String, és milyen típusú értékek is Integer.

1. példa: HashMap létrehozása Java-ban

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap languages = new HashMap(); // add elements to hashmap languages.put("Java", 8); languages.put("JavaScript", 1); languages.put("Python", 3); System.out.println("HashMap: " + languages); ) )

Kimenet

 HashMap: (Java = 8, JavaScript = 1, Python = 3)

A fenti példában létrehoztunk egy HashMapmegnevezett nyelvet.

Itt azt a put()módszert használtuk , hogy elemeket adjunk a hashmap-hoz. A put()módszerről többet megtudhatunk ebben az oktatóanyagban később.

Alapvető műveletek a Java HashMap-on

Az HashMaposztály különféle módszereket biztosít a hasmapokon végzett különböző műveletek végrehajtására. Megtekintünk néhány gyakran használt tömblista műveletet ebben az oktatóanyagban:

  • Adjon hozzá elemeket
  • Hozzáférési elemek
  • Elemek módosítása
  • Távolítsa el az elemeket

1. Adjon elemeket egy HashMap-hoz

Egyetlen elem hozzáadásához a hashmap-hoz put()az HashMaposztály metódusát használjuk . Például,

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap numbers = new HashMap(); System.out.println("Initial HashMap: " + numbers); // put() method to add elements numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("HashMap after put(): " + numbers); ) )

Kimenet

 Kezdeti HashMap: () HashMap put () után: (One = 1, Two = 2, Three = 3)

A fenti példában létrehoztunk egy HashMapmegnevezett számokat. Itt a put()módszerrel elemeket adtunk a számokhoz.

Figyelje meg az állítást,

 numbers.put("One", 1);

Itt átadjuk a metódusnak az Stringegyik értéket kulcsként és az Integer1 értéket put().

Ajánlott olvasmányok

  • Java HashMap put ()
  • Java HashMap putAll ()
  • Java HashMap putIfAbsent ()

2. Hozzáférés a HashMap elemekhez

Használhatjuk a get()módszert az érték eléréséhez a hashmap-ból. Például,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // get() method to get value String value = languages.get(1); System.out.println("Value at index 1: " + value); ) )

Kimenet

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Az 1. index értéke: Java

A fenti példában vegye észre a következő kifejezést:

 languages.get(1);

Itt a get()metódus a kulcsot veszi fel argumentumként, és visszaadja a kulcshoz társított megfelelő értéket .

Azt is elérheti a kulcsokat , értékeket és kulcs / érték párokat a HashMap mint beállított nézetek segítségével keySet(), values()és entrySet()módszereket ill. Például,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // return set view of keys // using keySet() System.out.println("Keys: " + languages.keySet()); // return set view of values // using values() System.out.println("Values: " + languages.values()); // return set view of key/value pairs // using entrySet() System.out.println("Key/Value mappings: " + languages.entrySet()); ) )

Kimenet

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Kulcsok: (1, 2, 3) Értékek: (Java, Python, JavaScript) Kulcs / Érték leképezések: (1 = Java, 2 = Python, 3 = JavaScript )

A fenti példában létrehoztunk egy hashmap nevű nyelvet. Itt elérjük a kulcsokat , az értékeket és a kulcs / érték leképezéseket a hashmap-ból.

Ajánlott olvasmányok

  • Java HashMap get ()
  • Java Hashmap getOrDefault ()
  • Java HashMap keySet ()
  • Java HashMap értékek ()
  • Java HashMap entrySet ()

3. Módosítsa a HashMap értéket

A replace()módszerrel megváltoztathatjuk a hashmap kulcshoz társított értékét. Például,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("Original HashMap: " + languages); // change element with key 2 languages.replace(2, "C++"); System.out.println("HashMap using replace(): " + languages); ) )

Kimenet

 Eredeti HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap a Replace () használatával: (1 = Java, 2 = C ++, 3 = JavaScript)

A fenti példában létrehoztunk egy hashmap nevű nyelvet. Figyelje meg a kifejezést,

 languages.replace(2, "C++");

Itt megváltoztatjuk a 2. kulcs által hivatkozott értéket az új C ++ értékkel.

Az HashMaposztály a replace()módszer néhány változatát is tartalmazza . Ha többet szeretne megtudni, látogasson el

  • Java HashMap cseréje ()
  • Java HashMap ReplaceAll ()

4. Távolítsa el a HashMap elemeket

Az elemek hashmap-ból való eltávolításához használhatjuk az remove () metódust. Például,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // remove element associated with key 2 String value = languages.remove(2); System.out.println("Removed value: " + value); System.out.println("Updated HashMap: " + languages); ) )

Kimenet

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Törölt érték: Python Frissítve HashMap: (1 = Java, 3 = JavaScript)

Itt a remove()metódus a kulcsot veszi paraméterül. Ezután visszaadja a kulcshoz társított értéket , és eltávolítja a bejegyzést .

A bejegyzést is csak bizonyos feltételek mellett távolíthatjuk el. Például,

 remove(2, "C++");

Here, the remove() method only removes the entry if the key 2 is associated with the value C++. Since 2 is not associated with C++, it doesn't remove the entry.

To learn more, visit Java HashMap remove().

Other Methods of HashMap

Method Description
clear() removes all mappings from the HashMap
compute() computes a new value for the specified key
computeIfAbsent() computes value if a mapping for the key is not present
computeIfPresent() computes a value for mapping if the key is present
merge() merges the specified mapping to the HashMap
clone() makes the copy of the HashMap
containsKey() checks if the specified key is present in Hashmap
containsValue() checks if Hashmap contains the specified value
size() returns the number of items in HashMap
isEmpty() checks if the Hashmap is empty

Iterate through a HashMap

To iterate through each entry of the hashmap, we can use Java for-each loop. We can iterate through keys only, vales only, and key/value mapping. For example,

 import java.util.HashMap; import java.util.Map.Entry; class Main ( public static void main(String() args) ( // create a HashMap HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // iterate through keys only System.out.print("Keys: "); for (Integer key : languages.keySet()) ( System.out.print(key); System.out.print(", "); ) // iterate through values only System.out.print("Values: "); for (String value : languages.values()) ( System.out.print(value); System.out.print(", "); ) // iterate through key/value entries System.out.print("Entries: "); for (Entry entry : languages.entrySet()) ( System.out.print(entry); System.out.print(", "); ) ) )

Output

 HashMap: (1=Java, 2=Python, 3=JavaScript) Keys: 1, 2, 3, Values: Java, Python, JavaScript, Entries: 1=Java, 2=Python, 3=JavaScript,

Note that we have used the Map.Entry in the above example. It is the nested class of the Map interface that returns a view (elements) of the map.

We first need to import the java.util.Map.Entry package in order to use this class.

This nested class returns a view (elements) of the map.

Creating HashMap from Other Maps

In Java, we can also create a hashmap from other maps. For example,

 import java.util.HashMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // create a treemap TreeMap evenNumbers = new TreeMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("TreeMap: " + evenNumbers); // create hashmap from the treemap HashMap numbers = new HashMap(evenNumbers); numbers.put("Three", 3); System.out.println("HashMap: " + numbers); ) )

Output

 TreeMap: (Four=4, Two=2) HashMap: (Two=2, Three=3, Four=4)

In the above example, we have created a TreeMap named evenNumbers. Notice the expression,

 numbers = new HashMap(evenNumbers)

Here, we are creating a HashMap named numbers using the TreeMap. To learn more about treemap, visit Java TreeMap.

Note: While creating a hashmap, we can include optional parameters: capacity and load factor. For example,

 HashMap numbers = new HashMap(8, 0.6f);

Here,

  • 8 (capacity is 8) - This means it can store 8 entries.
  • 0.6f (load factor is 0.6) - This means whenever our hash table is filled by 60%, the entries are moved to a new hash table double the size of the original hash table.

Ha az opcionális paraméterek nem használt, akkor az alapértelmezett kapacitás lesz 16 , és az alapértelmezett load factor lesz 0.75 .

érdekes cikkek...