CodeBlanks Logo Icon CodeBlanks

HashMap

HashMap ile anahtar-değer eşlemesini öğrenirsin.

Anahtar-değer: HashMap

HashMap bir anahtarı bir değere bağlar. Anahtarla değer arasında hızlı geçiş yapmak istediğinde kullanılır; tıpkı bir sözlük gibi.

HashMap<String, Integer> ages = new HashMap<>();
ages.put("Ayşe", 28);
ages.put("Mehmet", 32);
int age = ages.get("Ayşe");
// age = 28

İçeride her anahtar yalnızca bir kez bulunur. Aynı anahtara yeniden put yaparsan eski değerin üzerine yazılır. HashMap, java.util paketindedir.

Anahtar kümesi üzerinde döngü

Bir HashMap'in tüm anahtarlarını gezmek için keySet kullanılır. Bu metot anahtarların bir Set olarak görünümünü döner.

for (String name : ages.keySet()) {
  System.out.println(name + " - " + ages.get(name));
}

Çiftleri (anahtar + değer birlikte) gezmek için entrySet daha verimlidir; çünkü get çağrısı yapmazsın. entrySet'in her ögesi bir Map.Entry'dir.

Uygulama Şehir sıcaklıkları tablosu

Bir HashMap<String, Integer> oluştur; "İstanbul" anahtarına 14, "Ankara" anahtarına 11 değerini koy. Sonra "İstanbul" anahtarının değerini yazdır.

Başlangıç kodu

Main.java
import java.util.HashMap;

public class Main {
  public static void main(String[] args) {
    // HashMap<String, Integer> oluştur
    // İstanbul -> 14, Ankara -> 11
    // İstanbul değerini yazdır
  }
}

Örnek çözüm

Main.java
HashMap<String, Integer> temps = new HashMap<>();
temps.put("İstanbul", 14);
temps.put("Ankara", 11);
System.out.println(temps.get("İstanbul"));

Beklenen çıktı

14

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Aynı anahtarla ikinci put yaparsan ne olur?

  • Eski değerin üzerine yazılır
  • İkinci değer yok sayılır
  • Hata fırlatır
  • İki aynı anahtar saklanır Doğru cevap

Açıklama: Anahtar tekil olduğu için eski değer kaybolur.

2 Metot ve işlevi eşleştir

Kavram Anlamı
put(k, v) Anahtar-değer ekler
get(k) Anahtarın değerini döner
keySet() Anahtar kümesini döner
size() Çift sayısını döner

3 Boşluğu doldur: değeri al

Soru
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Ayşe", 28);
int age = ages.____("Ayşe");
Cevap
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Ayşe", 28);
int age = ages.get("Ayşe");

Açıklama: get("Ayşe") değeri döner.

Başlangıç bölümündeki tüm dersler