Java Hash Haritası Ve Ağaç Haritası her ikisi de Java Koleksiyonları çerçevesinin sınıflarıdır. Java Harita uygulaması genellikle bir gruplanmış karma tablo görevi görür. Kovalar çok büyüdüğünde düğümlere dönüşürler. Ağaç Düğümleri her biri aşağıdakilere benzer şekilde yapılandırılmıştır java.util.TreeMap .
Hash Haritası
HashMap uygular Harita, Klonlanabilir Ve Serileştirilebilir arayüz. Uzatır Soyut Harita sınıf. A ait java.util paket.
- HashMap, anahtara dayalı değeri içerir.
- Tek bir boş anahtara ve birden çok boş değere sahip olabilir.
- HashMap yineleme sırasında düzeni korumaz.
- Benzersiz unsurlar içerir.
- Hash prensibiyle çalışır.
Ağaç Haritası
TreeMap sınıfı genişletiliyor Soyut Harita sınıf ve uygular Gezinilebilir Harita , Klonlanabilir , Ve Serileştirilebilir arayüz. TreeMap bir örnektir Sıralanmış Harita . Kırmızı-Siyah ağacı tarafından uygulanır, bu da tuşların sırasının sıralandığı anlamına gelir.
java lambda
- TreeMap ayrıca anahtara dayalı değeri de içerir.
- TreeMap anahtarlara göre sıralanır.
- Benzersiz unsurlar içerir.
- Boş bir anahtara sahip olamaz ancak birden fazla boş değere sahip olabilir.
- Tuşlar artan sıradadır.
- Nesneyi ağaç yapısında saklar.
HashMap ve TreeMap arasındaki benzerlikler
- Her iki sınıf da genişliyor Soyut Harita sınıf.
- Harita depolayan bir nesnedir anahtar/değer çifti çiftler. Anahtar/değer çiftinde her anahtar benzersizdir ancak değerleri farklı olabilir. kopyalamak .
- Her iki sınıf da eşlemeyi temsil eder anahtar ile değerler .
- Her iki harita da değil senkronize .
- Harita kullanımı koymak() Haritaya bir öğe ekleme yöntemi.
- Yineleyici bir atar EşzamanlıModifikasyonİstisnası harita herhangi bir şekilde değiştirilirse.
HashMap ve TreeMap arasındaki temel fark şudur:
Hash Haritası yineleme sırasını korumaz Ağaç Haritası kullanarak düzeni koruyun karşılaştırmak() yöntem veya bir karşılaştırıcı TreeMap'in yapıcısında ayarlanır.
Aşağıdaki tabloda HashMap ve TreeMap arasındaki farklar açıklanmaktadır.
Temel | Hash Haritası | Ağaç Haritası |
---|---|---|
Tanım | Java Hash Haritası Harita arayüzünün karma tablosu tabanlı bir uygulamasıdır. | Java Ağaç Haritası Harita arayüzünün Ağaç yapısına dayalı bir uygulamasıdır. |
Arayüz Uygular | HashMap uygular Harita, Klonlanabilir , Ve Serileştirilebilir arayüz. | TreeMap uygular Gezinilebilir Harita, Klonlanabilir , Ve Serileştirilebilir arayüz. |
Boş Anahtarlar/Değerler | HashMap şunları sağlar: Bekar boş anahtar ve çoklu boş değerler. | TreeMap izin vermiyor hükümsüz anahtarlar ama olabilir çoklu boş değerler. |
Homojen heterojen | HashMap, anahtarlar üzerinde sıralama yapmadığı için heterojen öğelere izin verir. | TreeMap, sıralama nedeniyle anahtar olarak homojen değerlere izin verir. |
Verim | HashMap: Daha hızlı TreeMap'ten daha iyidir çünkü get() ve put() gibi temel işlemler için O(1) olan sabit zamanlı performansı sağlar. | Ağaç Haritası: yavaş HashMap ile karşılaştırıldığında, add(), delete() ve include() gibi çoğu işlem için O(log(n)) performansını sağlar. |
Veri yapısı | HashMap sınıfı şunu kullanır: karma tablosu . | TreeMap dahili olarak bir Kırmızı siyah kendi kendini dengeleyen bir İkili Arama Ağacı olan ağaç. |
Karşılaştırma Yöntemi | Kullanır eşittir() yöntemi Nesne Anahtarları karşılaştırmak için sınıf. Map sınıfının equals() yöntemi onu geçersiz kılar. | Şunu kullanır: karşılaştırmak() Anahtarları karşılaştırma yöntemi. |
İşlevsellik | HashMap sınıfı yalnızca aşağıdaki gibi temel işlevleri içerir: get(), put(), KeySet() , vesaire. . | TreeMap sınıfı aşağıdaki gibi işlevler içerdiğinden işlevsellik bakımından zengindir: tailMap(), FirstKey(), lastKey(), pollFirstEntry(), pollLastEntry() . |
Elemanların sırası | HashMap herhangi bir düzeni korumaz. | Elementler şu şekilde sıralanmıştır: doğal düzen (artan). |
Kullanım Alanları | Sıralı anahtar/değer çiftine ihtiyaç duymadığımız durumlarda HashMap kullanılmalıdır. | Anahtar/değer çiftinin sıralı (artan) şekilde olmasını istediğimizde TreeMap kullanılmalıdır. |
HashMap ve TreeMap örneği
Aşağıdaki örnekte, HashMap'in elemanlarının rastgele sırada olduğunu, TreeMap'in elemanlarının ise artan sırada düzenlendiğini gözlemleyebiliriz.
inkscape vs gimp
import java.util.Map; import java.util.HashMap; import java.util.TreeMap; public class HashMapVsTreeMapExample { public static void main(String args[]) { /*------------HashMap implementation----------------*/ Map hm=new HashMap(); //adding elements to the HashMap hm.put(9, 'Red'); hm.put(12, 'Black'); hm.put(6, 'Green'); hm.put(19, 'White'); System.out.println('HashMap iteration Order:'); //iteration over map using for each loop for(Map.Entryentry: hm.entrySet()) { //getting keys and values using method System.out.println(entry.getKey() + ' = ' +entry.getValue()); } /*------------TreeMap implementation----------------*/ Map tm=new TreeMap(); //adding elements to the TreeMap tm.put(9, 'Red'); tm.put(12, 'Black'); tm.put(6, 'Green'); tm.put(19, 'White'); System.out.println('TreeMap iteration Order:'); //iteration over map using for each loop for(Map.Entryentry: tm.entrySet()) { //getting keys and values using method //prints list in sorted order System.out.println(entry.getKey() + ' = ' +entry.getValue()); } } }
Çıktı: