Java TreeMap Veri Yapısı Nasıl Kullanılır

Java TreeMap Veri Yapısı Nasıl Kullanılır

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. Tür 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ında, yeni bir TreeMap nesnesi oluşturmak için kullanabileceğiniz dört oluşturucu bulunur. Varsayılan kurucu, dördünün en popüler olanıdır. Bu kurucu 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, adı verilen boş bir ağaç haritası oluşturur. müşteriler .

TreeMap Veri Yapısını Doldurma

bu koy() yöntem, bir TreeMap nesnesine bir öğe ekler. İki argüman alır: bir anahtar ve değeri. Ağaç haritasına herhangi bir rastgele sırada öğeler ekleyebilirsiniz ve veri yapısı bunları anahtarlarına göre artan sırada saklayacaktır.



// 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.

Bir Ağaç Haritasındaki Öğeleri Görüntüleme

TreeMap sınıfı, verilerini bir nesnede saklar. Bu nedenle, bir ağaç haritasındaki tüm öğeleri görmek için ağaç haritası nesnesini konsola yazdırabilirsiniz:





metin mesajlarım neden teslim edilmiyor
// View all tree map items as an object 
System.out.println(customers);

Yukarıdaki kod, aşağıdaki çıktıyı konsola 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. Ayrıca her bir öğeyi ve karşılık gelen anahtarını kullanarak da görüntüleyebilirsiniz. döngü için bir Java .





// 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, aşağıdaki çıktıyı konsola 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ı, mevcut bir öğeyi aşağıdakileri kullanarak güncellemenizi sağlar. yer değiştirmek() yöntem. İki değiştirme yöntemi vardır. İlk yöntem, mevcut bir anahtarı ve mevcut anahtarı eşleştirmek 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 gibi Kim Brown şimdi Kim Smith . İ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 Michelle Nuh yerini alır Jim Riley .

Ağaç Haritasından Öğeleri Silme

Ağaç haritasından tek bir öğeyi kaldırmak isterseniz, kaldırmak() yöntem 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, aşağıdaki nesneyi konsola yazdırır:

{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}

Bu Java Sınıfı ayrıca bir açık() ağaç haritasındaki tüm öğeleri silmenizi sağlayan yöntem.

TreeMap ve HashMap Java Sınıfı Karşılaştırması

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ının aynı işlevlerin çoğuna erişmesini 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. İlkinin algoritmik hızı O(1), ikincisinin ise O(log(n))'dir.