Skip to main content

☕ Java'da Map (Harita) Yapısı Nasıl Kullanılır? (HashMap Rehberi)

Java'da Map (Harita), verileri anahtar (key) ve değer (value) çiftleriyle ilişkilendiren güçlü bir veri yapısıdır.
Bu yapı, veriye benzersiz bir anahtar üzerinden hızlı erişim sağlar ve birçok Java projesinin temelini oluşturur.


🧠 Teknik Özet

Ana konu: Java Map arayüzü ve HashMap kullanımı
Çözdüğü problem: Benzersiz anahtarlarla veri depolamak ve hızlı erişim sağlamak
Adımlar:

  1. Map yapısını oluşturma
  2. Veri ekleme ve güncelleme
  3. Girdi silme
  4. get, size, keySet, values gibi yardımcı metotları kullanma
  5. containsKey, containsValue ve getOrDefault ile sorgulama

💡 Map yapısı, sözlük veya JSON benzeri veri depolama için idealdir.


🧩 Map Türleri

Map arayüzü java.util paketinde yer alır. En yaygın uygulamaları şunlardır:

TürAçıklama
HashMapEn hızlı Map türüdür. Genel kullanım için uygundur. (Bu rehberde bu kullanılacak.)
LinkedHashMapEkleme sırasını korur. Performansı HashMap’ten biraz düşüktür.
ConcurrentMapThread-safe’tir, yani çoklu iş parçacıklarıyla güvenli çalışır.

⚙️ 1. HashMap Oluşturma

JShell’i açın ve boş bir HashMap oluşturun:

// String türünde anahtar ve değere sahip bir HashMap oluşturur.
Map<String, String> baskentler = new HashMap<>();

Çıktı:

baskentler ==> {}


➕ 2. Girdi Ekleme ve Güncelleme

Yeni kayıt eklemek için put() metodunu kullanın:


// "Türkiye" anahtarına "İzmir" değerini ekler.
baskentler.put("Türkiye", "İzmir");

Aynı anahtarı kullanarak değeri güncelleyin:


// Eski değeri (İzmir) "Ankara" ile değiştirir.
baskentler.put("Türkiye", "Ankara");

Başka bir kayıt ekleyelim:


baskentler.put("Almanya", "Berlin");

Çıktı: {Türkiye=Ankara, Almanya=Berlin}


🗑️ 3. Girdi Silme

Bir girdiyi kaldırmak için:


// "Almanya" anahtarını ve değerini siler.
baskentler.remove("Almanya");

Tüm kayıtları temizlemek için:


// Tüm anahtar-değer çiftlerini siler.
baskentler.clear();

🔍 4. Faydalı Map Metotları

Haritayı tekrar dolduralım:


baskentler.put("Türkiye", "Ankara");
baskentler.put("Fransa", "Paris");

📖 Temel Metotlar

MetotAçıklamaÖrnek
get()Anahtarın değerini döndürürbaskentler.get("Fransa")
size()Kayıt sayısını döndürürint sayi = baskentler.size()
keySet()Tüm anahtarları döndürürbaskentler.keySet()
values()Tüm değerleri döndürürbaskentler.values()

🔎 Sorgulama Metotları

Anahtarın varlığını kontrol et:


baskentler.containsKey("Türkiye"); // true

Değerin varlığını kontrol et:


baskentler.containsValue("İstanbul"); // false

Varsayılan değerle arama yap:


baskentler.getOrDefault("İspanya", "Tanımlanmadı"); // "Tanımlanmadı"

❓ Sıkça Sorulan Sorular (SSS)

  1. HashMap ile dizi (Array) arasındaki fark nedir?

Diziler verileri indeks ile tutar, HashMap ise anahtar ile ilişkilendirir. Bu sayede HashMap daha esnek ve hızlı erişim sağlar.

  1. Aynı anahtarı tekrar eklersem ne olur?

Yeni değer eskiyi değiştirir. Her anahtar benzersiz olmalıdır.

  1. HashMap sıralı mı çalışır?

Hayır. Veriler sırasız saklanır. Sıra gerekliyse LinkedHashMap tercih edilmelidir.

  1. Map’te farklı türler kullanılabilir mi?

Evet. Örneğin Map<Integer, String> tanımıyla ID–isim eşleştirmesi yapılabilir.

  1. HashMap thread-safe midir?

Hayır. Aynı anda birden fazla thread kullanacaksanız ConcurrentHashMap seçilmelidir.


🏁 Sonuç

Bu rehberde Java’nın Map arayüzü ve en yaygın implementasyonu olan HashMap yapısını öğrendiniz. Anahtar-değer çiftleriyle veri saklamayı, güncellemeyi ve sorgulamayı uygulamalı olarak incelediniz.

💡 Kendi Map tabanlı Java projelerinizi Rabisu Bulut’un yüksek performanslı sunucularında deneyebilir, kodunuzu anında çalıştırabilirsiniz.