Map (HashMap, LinkedHashMap, TreeMap)
🎯 1. Map Nedir?
Section titled “🎯 1. Map Nedir?”Map arayüzü, anahtar (key) ve değer (value) çiftlerini tutmak için kullanılır.
Her anahtar benzersiz (unique) olmalıdır; ancak aynı değeri birden fazla anahtar tutabilir.
📦 Paket:
java.util.*
🔹 2. Map Türleri
Section titled “🔹 2. Map Türleri”| Tür | Özellik | Sıralama | Null Anahtar | Performans |
|---|---|---|---|---|
HashMap | Sırasız, hızlı | ❌ | ✅ 1 adet | ⚡ Çok hızlı |
LinkedHashMap | Ekleme sırasını korur | ✅ | ✅ 1 adet | ⚡ Orta |
TreeMap | Anahtarlara göre sıralı | ✅ (doğal) | ❌ | ⚡ Daha yavaş |
🔹 3. HashMap Kullanımı
Section titled “🔹 3. HashMap Kullanımı”import java.util.HashMap;
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "Elma");map.put(2, "Armut");map.put(3, "Muz");
System.out.println(map); // {1=Elma, 2=Armut, 3=Muz}💡
put()metodu aynı anahtar tekrar eklendiğinde, eski değeri üzerine yazar.
🔹 4. Değer ve Anahtarlara Erişim
Section titled “🔹 4. Değer ve Anahtarlara Erişim”System.out.println(map.get(2)); // ArmutSystem.out.println(map.keySet()); // [1, 2, 3]System.out.println(map.values()); // [Elma, Armut, Muz]🔹 5. Eleman Silme
Section titled “🔹 5. Eleman Silme”map.remove(3); // Anahtar 3 olan çift silinirSystem.out.println(map);🔹 6. containsKey() ve containsValue()
Section titled “🔹 6. containsKey() ve containsValue()”System.out.println(map.containsKey(1)); // trueSystem.out.println(map.containsValue("Elma")); // true🔹 7. Döngü ile Map Üzerinde Gezinme
Section titled “🔹 7. Döngü ile Map Üzerinde Gezinme”🔸 keySet() ile
Section titled “🔸 keySet() ile”for (Integer key : map.keySet()) { System.out.println(key + " -> " + map.get(key));}🔸 entrySet() ile (Tercih edilir)
Section titled “🔸 entrySet() ile (Tercih edilir)”for (var entry : map.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue());}🔸 lambda (Java 8+)
Section titled “🔸 lambda (Java 8+)”map.forEach((k, v) -> System.out.println(k + " = " + v));🔹 8. LinkedHashMap
Section titled “🔹 8. LinkedHashMap”import java.util.LinkedHashMap;
LinkedHashMap<String, Integer> siraliMap = new LinkedHashMap<>();siraliMap.put("Bir", 1);siraliMap.put("İki", 2);siraliMap.put("Üç", 3);
System.out.println(siraliMap); // {Bir=1, İki=2, Üç=3}✅ Ekleme sırasını korur.
🔹 9. TreeMap
Section titled “🔹 9. TreeMap”import java.util.TreeMap;
TreeMap<String, Integer> sirali = new TreeMap<>();sirali.put("C", 3);sirali.put("A", 1);sirali.put("B", 2);
System.out.println(sirali); // {A=1, B=2, C=3}💡
TreeMap, anahtarları doğal sıraya göre otomatik sıralar.
🔹 10. Null Kullanımı
Section titled “🔹 10. Null Kullanımı”| Map Türü | Null Key | Null Value |
|---|---|---|
HashMap | ✅ 1 adet | ✅ |
LinkedHashMap | ✅ 1 adet | ✅ |
TreeMap | ❌ | ✅ |
🔹 11. Map Boyutu ve Temizleme
Section titled “🔹 11. Map Boyutu ve Temizleme”System.out.println("Boyut: " + map.size());map.clear();System.out.println(map.isEmpty()); // true🧩 12. Örnek: Kelime Frekans Sayacı
Section titled “🧩 12. Örnek: Kelime Frekans Sayacı”import java.util.*;
public class KelimeSayaci { public static void main(String[] args) { String metin = "java kod yaz java öğren java"; String[] kelimeler = metin.split(" ");
HashMap<String, Integer> sayac = new HashMap<>();
for (String kelime : kelimeler) { sayac.put(kelime, sayac.getOrDefault(kelime, 0) + 1); }
sayac.forEach((k, v) -> System.out.println(k + " : " + v)); }}🔢 Çıktı:
java : 3
kod : 1
yaz : 1
öğren : 1
🧠 13. Yararlı Metotlar
Section titled “🧠 13. Yararlı Metotlar”| Metot | Açıklama |
|---|---|
put(key, value) | Eleman ekler veya günceller |
get(key) | Değeri döndürür |
remove(key) | Anahtarı siler |
keySet() | Tüm anahtarları döner |
values() | Tüm değerleri döner |
entrySet() | Anahtar-değer çiftlerini döner |
containsKey() | Anahtar var mı kontrol eder |
containsValue() | Değer var mı kontrol eder |
size() | Eleman sayısını döner |
clear() | Tümünü siler |
🏁 Özet
Section titled “🏁 Özet”| Tür | Sıralama | Null Key | Performans |
|---|---|---|---|
| HashMap | ❌ | ✅ | ⚡ Hızlı |
| LinkedHashMap | ✅ Ekleme sırası | ✅ | ⚡ Orta |
| TreeMap | ✅ Doğal sıralama | ❌ | ⚡ Yavaş |
💡 Not: Map yapıları, anahtar-değer ilişkisini yönetmek için en yaygın kullanılan koleksiyon türlerindendir.
Örneğin: kullanıcı id → isim, ürün kodu → fiyat gibi.