Java’da HashMap ve TreeMap

Java Collections Framework’ün önemli parçalarından olan HashMap ve TreeMap, anahtar-değer (key-value) çiftlerini depolamak için kullanılır. Her ikisi de Map arayüzünü (interface) uygular ancak iç yapı ve sıralama özellikleri farklıdır.

Bu yazıda HashMap ve TreeMap’in ne olduğunu, nasıl çalıştığını, avantajlarını ve kullanım alanlarını örneklerle açıklayacağız.


HashMap Nedir?

HashMap, verileri hash tabanlı bir yapı ile depolar. Anahtarların hash kodu hesaplanır ve buna göre veriler hızlıca erişilir.

Özellikleri

  • Anahtarlar ve değerler null olabilir. (Anahtar için sadece 1 tane null izinlidir)
  • Eleman ekleme, silme ve arama işlemleri ortalama O(1) zaman alır.
  • Sıralama garantisi yoktur; elemanlar rastgele sırada depolanır.
  • Thread-safe değildir.

TreeMap Nedir?

TreeMap, verileri kırmızı-siyah ağaç (Red-Black Tree) yapısı ile depolar. Bu nedenle, anahtarlar doğal sıralamalarına (Comparable) veya verilen Comparator’a göre sıralanır.

Özellikleri

  • Anahtarlar null olamaz, ancak değerler null olabilir.
  • Eleman ekleme, silme ve arama işlemleri O(log n) zaman alır.
  • Sıralı veri erişimi sağlar.
  • Thread-safe değildir.

🧑‍💻 Kullanım Örnekleri

HashMap Örneği

import java.util.HashMap;

public class Ornek {
    public static void main(String[] args) {
        HashMap<String, Integer> yaslar = new HashMap<>();
        yaslar.put("Ahmet", 25);
        yaslar.put("Ayşe", 30);
        yaslar.put("Mehmet", 22);

        System.out.println(yaslar.get("Ayşe"));  // 30

        yaslar.remove("Mehmet");
        System.out.println(yaslar);  // {Ahmet=25, Ayşe=30}
    }
}

TreeMap Örneği

import java.util.TreeMap;

public class Ornek {
    public static void main(String[] args) {
        TreeMap<String, Integer> yaslar = new TreeMap<>();
        yaslar.put("Ahmet", 25);
        yaslar.put("Ayşe", 30);
        yaslar.put("Mehmet", 22);

        System.out.println(yaslar.firstKey());  // Ahmet (alfabetik olarak ilk)

        yaslar.remove("Mehmet");
        System.out.println(yaslar);  // {Ahmet=25, Ayşe=30}
    }
}


HashMap ve TreeMap Karşılaştırması

ÖzellikHashMapTreeMap
İç YapıHash tablosuKırmızı-siyah ağaç
Ekleme/Arama/SilmeOrtalama O(1)O(log n)
SıralamaYokVar (doğal sıralama)
null Anahtar1 adet izinliİzinli değil
null Değerİzinliİzinli
PerformansDaha hızlıDaha yavaş ancak sıralı
Kullanım AlanıHızlı erişim gereken durumlarSıralı veri gerektiren durumlar

Ne Zaman Hangisini Kullanmalı?

  • HashMap: Hız öncelikli ve sıralama gerekmeyen durumlarda tercih edin.
  • TreeMap: Anahtarların sıralı tutulması gerektiğinde, örneğin alfabetik listeleme ya da aralık sorgularında kullanılır.
guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx