Java'daki HashMap ve TreeMap Arasındaki Fark
İçerik
HashMap ve TreeMap, Harita sınıflarıdır ve her ikisi de Harita arayüzünü uygular. Harita, her anahtarın benzersiz olduğu ve yinelenen değerler olabileceği anahtar-değer çiftlerini saklayan bir nesnedir. HashMap sınıfı, karma tabloyu veri yapısı olarak kullanır. TreeMap, kırmızı-siyah ağacı veri yapısı olarak kullanır. HashMap ve Treemap arasındaki ana fark şudur: HashMap takma sırasını korumaz; treemap yapar.
Şimdi HashMap ve TreeMap arasındaki farklılıklar hakkındaki tartışmamıza aşağıda gösterilen karşılaştırma tablosunun yardımıyla başlayalım.
- Karşılaştırma Tablosu
- Tanım
- Anahtar Farklılıklar
- Sonuç
Karşılaştırma Tablosu
Karşılaştırma için temel | HashMap | TreeMap |
---|---|---|
Temel | HashMap ekleme sırasını korumaz. | TreeMap ekleme sırasını korur. |
Veri yapısı | HashMap, temel veri yapısı olarak Hash Tablosunu kullanır. | TreeMap, temel veri yapısı olarak Kırmızı-Siyah Ağaç kullanır. |
Boş Anahtarlar ve Değerler | HashMap Null anahtarının bir kez ve Null değerinin herhangi bir zaman değerinde olmasını sağlar. | TreeMap, Null anahtarına izin vermiyor, ancak Null Değerlerine istediğiniz zaman izin veriyor. |
Uzar ve Uygular | HashMap, AbstractMap sınıfını genişletir ve Harita arabirimini uygular. | TreeMap, AbstractMap sınıfını genişletir ve SortedMap ve NavigableMap arabirimini uygular. |
performans | HashMap daha hızlı çalışır. | TreeMap, HashMap ile karşılaştırıldığında daha yavaş çalışır. |
HashMap'un tanımı
HashMap bir Harita sınıfıdır. Kullanır karma tablo, haritalar anahtar değer çiftini saklamak için bir veri yapısı olarak. Anahtar-değer çiftinin eklenmesi, hash kodu arasında anahtarlar. Bu nedenle, haritadaki her anahtarın değerleri almak için kullanılacağı için benzersiz olması gerekir.
HashMap’e ekleme siparişi değil Bu, hashmap nesnesinin, elemanları yerleştirildikleri sırada döndürmediği anlamına gelir. Diğer taraftan, elemanların iade edileceği sıra sabit değildir.
anahtar olmasına izin verilir BOŞ bir kerede, ama değerler olabilir BOŞ herhangi bir zamanda. HashMap şunları içerebilir: heterojen tuşları yanı sıra değerleri için nesneleri.
HashMap'in dört kurucusu var:
HashMap () HashMap (Harita m) HashMap (int kapasite), HashMap (int kapasite, şamandıra fillRatio)
ilk Yapıcı, HashMap'in boş nesnesini oluşturur. ikinci Yapıcı, MapM öğelerini kullanarak HashMap'i başlatır. üçüncü yapıcı, HashMap’i argümanda verilen kapasite ile başlatır. dördüncü yapıcı, HashMap nesnesinin dolum oranının yanı sıra kapasiteyi de başlatır.
Varsayılan kapasite HashMap’in 16ve varsayılan doldurma oranı HashMap’in 0.75.
TreeMap'un tanımı
HashMap gibi TreeMap Aynı zamanda bir Harita sınıfıdır. TreeMap uzanıyor AbstractMap sınıf ve uygular NavigabelMap ve SortedMap. TreeMap nesneleri, harita öğelerini ağaç yapısında saklar. Harita’yı depolamak için kullanılan veri yapısı Kırmızı-Siyah ağacı.
TreeMap, anahtar değer çiftini, öğelerin hızlı bir şekilde alınmasına yardımcı olan sıralanmış düzende saklar. TreeMap nesnesi, öğedeki öğeleri döndürür. sıralanmış (yükselen) sipariş.
TreeMap'in dört kurucusu vardır:
TreeMap () TreeMap (Karşılaştırıcı <? Super K> comp) TreeMap (Harita <? K,? V genişletir> m) TreeMap (SortedMap ilk Yapıcılar, anahtarlarını doğal sırayla sıralayacak boş bir TreeMap nesnesi oluşturur. ikinci Yapıcı, sıralamaya göre boş bir ağaç haritası oluşturacaktır. Karşılaştırıcı cmp. üçüncü Yukarıdaki yapıcı, girişleri kullanılarak başlatılacak olan bir ağaç haritası oluşturacak harita m. dördüncü yapıcı, girişleri kullanılarak başlatılacak olan bir ağaç haritası oluşturacak SortedMap sm. Treemap'in kendine ait yeni bir yöntemi yoktur, NavigableMap ve SortedMap arabirim yöntemini ve AbstractMap sınıfını kullanır. TreeMap yalnızca sıralı biçimde anahtar değer çifti istediğinizde kullanılmalıdır. Sıralama, performans maliyetini içerir. HashMap'in senkronize edilmemesi daha hızlı çalışır.
Sonuç: