Java TreeMap sınıfı, verileri bir harita arabirimi kullanarak bir ağaç yapısında depolar. Bu sınıf, AbstractMap sınıfını genişletir ve üst sınıfı gibi, TreeMap’in de iki tür parametresi vardır. Tip parametrelerinden biri TreeMap’teki anahtarları, diğeri ise değerleri temsil eder.
TreeMap veri yapısı, anahtar/değer çiftlerini saklar ve bu veriler üzerinde CRUD işlemleri gerçekleştirmenize olanak tanır.
Java’da TreeMap Nasıl Oluşturulur
TreeMap sınıfı, yeni bir TreeMap nesnesi oluşturmak için kullanabileceğiniz dört oluşturucuya sahiptir. Varsayılan kurucu, dördü arasında en popüler olanıdır. Bu yapıcı hiçbir argüman almaz ve boş bir ağaç haritası oluşturur.
// Create a new tree map
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();
Yukarıdaki kod, customer adlı boş bir ağaç haritası oluşturur .
TreeMap Veri Yapısını Doldurma
put() yöntemi , bir TreeMap nesnesine bir öğe ekler. İki bağımsız değişken alır; bir anahtar ve değeri. Öğeleri ağaç haritasına herhangi bir rasgele sırada ekleyebilirsiniz ve veri yapısı bunları anahtarlarına göre artan sırada depolar.
// Populate a tree map
customers.put(105, “Jessica Jones”);
customers.put(102, “Mark Williams”);
customers.put(104, “Phil Blair”);
customers.put(101, “Kim Brown”);
customers.put(103, “Jim Riley”);
Yukarıdaki kod, müşterilerin ağaç haritasına rastgele sırayla beş müşteri ekler.
Öğeleri Bir Ağaç Haritasında Görüntüleme
TreeMap sınıfı, verilerini bir nesnede saklar. Böylece, bir ağaç haritasındaki tüm öğeleri görmek için ağaç haritası nesnesini konsola yazdırabilirsiniz:
// View all tree map items as an object
System.out.println(customers);
Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Yukarıdaki nesnenin öğeleri artan sırada görüntülediğini unutmayın. Java for döngüsü kullanarak her bir öğeyi ve ona karşılık gelen anahtarı da görüntüleyebilirsiniz .
// View all items with an iterator
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println(“Key: ” + customer.getKey() + ” Value: ” + customer.getValue());
}
Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:
Key: 101 Value: Kim Brown
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones
Bir Ağaç Haritasındaki Öğeleri Güncelleme
TreeMap sınıfı, replace() yöntemini kullanarak mevcut bir öğeyi güncellemenizi sağlar . İki değiştirme yöntemi vardır. İlk yöntem, mevcut bir anahtarı ve mevcut anahtarı eşlemek istediğiniz yeni değeri alır.
// Replace existing value
customers.replace(101,”Kim Smith”);
System.out.println(customers);
Yukarıdaki kod, konsolda aşağıdaki nesneyi yazdırır:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Gördüğünüz gibi Kim Brown artık Kim Smith oldu . İkinci replace() yöntemi, mevcut bir anahtarı, anahtarın geçerli değerini ve anahtarla eşlemek istediğiniz yeni değeri alır.
// Replace existing value
customers.replace(103,”Jim Riley”, “Michelle Noah”);
System.out.println(customers);
Yukarıdaki kod, konsolda aşağıdaki nesneyi yazdırır:
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
Yukarıdaki nesnede Jim Riley’nin yerini Michelle Noah alıyor .
Ağaç Haritasından Öğeleri Silme
Ağaç haritasından tek bir öğeyi kaldırmak istiyorsanız, remove() yöntemi tek seçeneğinizdir. Kaldırmak istediğiniz öğeyle ilişkili anahtarı alır ve silinen değeri döndürür.
// Remove an item
customers.remove(104);
System.out.println(customers);
Yukarıdaki kodu çalıştırmak konsola aşağıdaki nesneyi yazdırır:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
Bu Java Sınıfı ayrıca, ağaç haritasındaki tüm öğeleri silmenizi sağlayan bir clear() yöntemine sahiptir.
TreeMap ve HashMap Java Sınıfı
TreeMap ve HashMap, daha popüler Java harita sınıflarından ikisidir. Her ikisi de AbstractMap sınıfını genişletir. Bu ilişki, TreeMap ve HashMap sınıflarına aynı işlevlerin çoğuna erişim sağlar.
Ancak, bu iki harita sınıfı arasında dikkate değer bazı farklılıklar vardır. TreeMap, Harita arayüzünün Kırmızı-Siyah ağaç uygulamasını kullanırken, HashMap bir karma tablo kullanır. HashMap, tek bir boş anahtar saklamanıza izin verirken, TreeMap bunu yapmaz. Son olarak, HashMap, TreeMap’ten daha hızlıdır. Birincisinin algoritmik hızı O(1) iken, ikincisi O(log(n))’dir.