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.

left-disk

Yazılım Kariyerinde İlerlemeni Hızlandıracak Programlar

Patika+ programlarımız ile 4-8 aylık yoğun yazılım kamplarına katıl, temel bilgilerden başlayarak kapsamlı bilgiler edin, yazılım kariyerine başla!

right-cube

Yorumlar

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