Odak modu

Java Eğitimi

TreeMap

TreeMap Nedir?

TreeMap, Java'da sıralı bir key-value(anahtar-değer) haritası sunan bir koleksiyon sınıfıdır ve java.util paketinin bir parçasıdır. Bu sınıf, anahtarları doğal sıralarına göre veya belirtilen bir Comparator kullanarak sıralar. TreeMap, Map arayüzünü implement eder ve genellikle sıralı verilerle çalışmak için kullanılır.

TreeMap, anahtarları sıralamak için bir ikili arama ağacı (red-black tree) kullanır. Bu yapısı sayesinde, veriler her zaman sıralı olarak saklanır ve sıralı erişim sağlar. TreeMap ile veri eklerken, her yeni öğe sıralama kriterine göre doğru konumda eklenir.

Özellikler:

  • Sıralama: TreeMap, anahtarları doğal sırasına göre veya sağlanan bir Comparator aracılığıyla sıralar. Bu, verilerin her zaman sıralı olmasını sağlar.
  • Zaman Karmaşıklığı: TreeMap'in anahtar ekleme, silme ve arama işlemleri genellikle O(log n) zaman karmaşıklığına sahiptir, çünkü arka planda bir ikili arama ağacı kullanılır.
  • null Anahtarlar: TreeMap null anahtarına izin vermez. Eğer null bir anahtar eklemeye çalışırsanız, NullPointerException hatası alırsınız.
  • Sıralama: Anahtarlar doğal sırasına göre veya kullanıcı tarafından sağlanan bir Comparator kullanılarak sıralanır.

Kullanım:

TreeMap, sıralı veri saklamak gerektiğinde, örneğin, sıralı anahtarlar üzerinde işlem yaparken çok faydalıdır. Ayrıca, sıralı bir harita üzerinden hızlı arama yapabilmek de TreeMap'in avantajlarındandır.

Örnek:

import java.util.TreeMap;

public class TreeMapExample {
  public static void main(String[] args) {
    // TreeMap oluşturma
    TreeMap<Integer, String> map = new TreeMap<>();

    // Elemanlar ekleme
    map.put(3, "Üç");
    map.put(1, "Bir");
    map.put(4, "Dört");
    map.put(2, "İki");

    // Anahtar sırasına göre yazdırma
    for (Map.Entry<Integer, String> entry : map.entrySet()) {
      System.out.println(entry.getKey() + ": " + entry.getValue());
    }
  }
}

Çıktı:

1: Bir

2: İki

3: Üç

4: Dört

Bu örnekte, TreeMap anahtarları doğal sırasına göre sıralar ve çıktıyı sıralı bir şekilde gösterir. Anahtarlar eklenme sırasına göre değil, küçükten büyüğe sıralanır.

Özel Durum: Comparator Kullanımı

Eğer anahtarları farklı bir sırayla sıralamak isterseniz, bir Comparator kullanabilirsiniz.

import java.util.*;

public class TreeMapWithComparator {
  public static void main(String[] args) {
    // Descending order (ters sıralama) için Comparator kullanma
    TreeMap<Integer, String> map = new TreeMap<>(Collections.reverseOrder());

    // Elemanlar ekleme
    map.put(3, "Üç");
    map.put(1, "Bir");
    map.put(4, "Dört");
    map.put(2, "İki");

    // Ters sıralı anahtarları yazdırma
    for (Map.Entry<Integer, String> entry : map.entrySet()) {
      System.out.println(entry.getKey() + ": " + entry.getValue());
    }
  }
}

Çıktı (Ters sıralı):

4: Dört

3: Üç

2: İki

1: Bir

Sonuç:

TreeMap, sıralı veri yapılarıyla çalışmak için oldukça faydalıdır ve sıralı anahtarlar üzerinde işlem yaparken kullanışlıdır. Verilerin sıralı olması gereken durumlarda, sıralama işlemini otomatik olarak yapması, performans açısından da avantaj sağlar. Ancak, null anahtarları kabul etmemesi ve sıralama işleminin zaman karmaşıklığı, bazı durumlarda dikkat edilmesi gereken noktalar olabilir.

Background Pattern
Birlikte öğrenelim

Sektörde en çok aranan yazılım becerilerini kazan

Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.

Yunus Emre Kabakcı

Patika+ mezunu

Patika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,

3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!


“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!