Java HashMap (Örneklerle)

Bu eğitimde, örnekler yardımıyla Java HashMap sınıfı ve çeşitli işlemleri hakkında bilgi edineceğiz.

HashMapJava koleksiyonları çerçeve sınıf karma tablo veri yapısının işlevi sağlar.

Öğeleri anahtar / değer çiftlerinde saklar . Burada anahtarlar , bir haritadaki her bir değeri ilişkilendirmek için kullanılan benzersiz tanımlayıcılardır .

HashMapSınıf Harita arabirimini uygular.

Java HashMap Uygulaması

Bir HashMap Oluşturun

Bir hash haritası oluşturmak için önce java.util.HashMappaketi içe aktarmalıyız . Paketi içe aktardıktan sonra, Java'da hashmap'leri nasıl oluşturabileceğimizi burada bulabilirsiniz.

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

Yukarıdaki kodda, numbers adlı bir hashmap oluşturduk. Burada, K anahtar türünü ve V değerlerin türünü temsil eder. Örneğin,

 HashMap numbers = new HashMap();

Burada türü tuşlarının olduğu Stringve tipi değerlerinin olduğunu Integer.

Örnek 1: Java'da HashMap Oluşturma

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

Çıktı

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

Yukarıdaki örnekte, HashMapadlandırılmış bir dil oluşturduk .

Burada, put()hashmap'e eleman eklemek için yöntemi kullandık . put()Bu eğitimde daha sonra yöntem hakkında daha fazla bilgi edineceğiz .

Java HashMap'te Temel İşlemler

HashMapSınıf hashmaps farklı işlemleri gerçekleştirmek için çeşitli yöntemler sağlar. Bu eğitimde yaygın olarak kullanılan bazı dizi listesi işlemlerine bakacağız:

  • Öğe ekleyin
  • Erişim öğeleri
  • Öğeleri değiştir
  • Öğeleri kaldır

1. HashMap'e öğeler ekleyin

Hashmap'e tek bir eleman eklemek put()için HashMapsınıfın metodunu kullanıyoruz . Örneğin,

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

Çıktı

 İlk HashMap: () koyulduktan sonra HashMap (): (Bir = 1, İki = 2, Üç = 3)

Yukarıdaki örnekte, HashMapadlandırılmış bir sayı oluşturduk . Burada, put()sayılara eleman eklemek için yöntemi kullandık .

İfadeye dikkat edin,

 numbers.put("One", 1);

Burada, yönteme Stringanahtar olarak Bir Integerdeğerini ve değer olarak 1 değerini put()iletiyoruz.

Önerilen Okumalar

  • Java HashMap koy ()
  • Java HashMap putAll ()
  • Java HashMap putIfAbsent ()

2. HashMap Öğelerine Erişim

Bu get()yöntemi hashmap'ten değere erişmek için kullanabiliriz . Örneğin,

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

Çıktı

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Dizin 1'deki değer: Java

Yukarıdaki örnekte, ifadeye dikkat edin,

 languages.get(1);

Burada get()yöntem, anahtarı bağımsız değişken olarak alır ve anahtarla ilişkili karşılık gelen değeri döndürür .

Ayrıca erişebilir anahtarlar , değerleri ve anahtar / değer kullanılarak resim görüntüleme gibi HashMap çiftleri keySet(), values()ve entrySet()sırasıyla yöntem. Örneğin,

 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()); ) )

Çıktı

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Anahtarlar: (1, 2, 3) Değerler: (Java, Python, JavaScript) Anahtar / Değer eşlemeleri: (1 = Java, 2 = Python, 3 = JavaScript )

Yukarıdaki örnekte, diller adlı bir hashmap oluşturduk. Burada, anahtarlara , değerlere ve anahtar / değer eşlemelerine hashmap'ten erişiyoruz .

Önerilen Okumalar

  • Java HashMap get ()
  • Java Hashmap getOrDefault ()
  • Java HashMap keySet ()
  • Java HashMap değerleri ()
  • Java HashMap entrySet ()

3. HashMap Değerini Değiştirin

Bu replace()yöntemi, bir karma haritadaki bir anahtarla ilişkili değeri değiştirmek için kullanabiliriz . Örneğin,

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

Çıktı

 Orijinal HashMap: (1 = Java, 2 = Python, 3 = JavaScript) replace () kullanarak HashMap: (1 = Java, 2 = C ++, 3 = JavaScript)

Yukarıdaki örnekte, diller adlı bir hashmap oluşturduk. İfadeye dikkat edin,

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

Burada anahtar 2 tarafından belirtilen değeri yeni C ++ değeriyle değiştiriyoruz.

HashMapSınıfı, bazı varyasyonlarını içerir replace()yöntem. Daha fazla bilgi edinmek için ziyaret edin

  • Java HashMap replace ()
  • Java HashMap replaceAll ()

4. HashMap Öğelerini Kaldır

Bir hashmap'ten öğeleri kaldırmak için remove () yöntemini kullanabiliriz. Örneğin,

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

Çıktı

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Kaldırılan değer: Python Güncellenmiş HashMap: (1 = Java, 3 = JavaScript)

Burada remove()yöntem, anahtarı parametresi olarak alır . Daha sonra anahtarla ilişkili değeri döndürür ve girişi kaldırır .

Ayrıca girişi yalnızca belirli koşullar altında kaldırabiliriz. Örneğin,

 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.

İsteğe bağlı parametreler kullanılmadığı takdirde, varsayılan kapasitesi olacak 16 ve varsayılan yük faktörü olacaktır 0.75 .

Ilginç makaleler...