☕ 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:
- Map yapısını oluşturma
- Veri ekleme ve güncelleme
- Girdi silme
- get, size, keySet, values gibi yardımcı metotları kullanma
- 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ür | Açıklama |
|---|---|
| HashMap | En hızlı Map türüdür. Genel kullanım için uygundur. (Bu rehberde bu kullanılacak.) |
| LinkedHashMap | Ekleme sırasını korur. Performansı HashMap’ten biraz düşüktür. |
| ConcurrentMap | Thread-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
| Metot | Açıklama | Örnek |
|---|---|---|
get() | Anahtarın değerini döndürür | baskentler.get("Fransa") |
size() | Kayıt sayısını döndürür | int sayi = baskentler.size() |
keySet() | Tüm anahtarları döndürür | baskentler.keySet() |
values() | Tüm değerleri döndürür | baskentler.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)
- 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.
- Aynı anahtarı tekrar eklersem ne olur?
Yeni değer eskiyi değiştirir. Her anahtar benzersiz olmalıdır.
- HashMap sıralı mı çalışır?
Hayır. Veriler sırasız saklanır. Sıra gerekliyse LinkedHashMap tercih edilmelidir.
- Map’te farklı türler kullanılabilir mi?
Evet. Örneğin Map<Integer, String> tanımıyla ID–isim eşleştirmesi yapılabilir.
- 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.