Java'daki HashMap ve TreeMap Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 2 Nisan 2021
Güncelleme Tarihi: 7 Mayıs Ayı 2024
Anonim
Java'daki HashMap ve TreeMap Arasındaki Fark - Teknoloji
Java'daki HashMap ve TreeMap Arasındaki Fark - Teknoloji

İç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.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelHashMapTreeMap
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 UygularHashMap, 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.
performansHashMap 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 sm)

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.

  1. Her iki sınıf da harita nesneleri oluşturmak için kullanılır, ancak HashMap ve Treemap arasındaki temel fark, HashMap'in ekleme sırasını korumamasıdır;
  2. Harita öğelerini depolamak için Hashmap tarafından kullanılan veri yapısı karma tablodur ve TreeMap tarafından harita öğelerini depolamak için kullanılan veri yapısı kırmızı-siyah ağaçtır.
  3. Hem Hashmap hem de Treemap sınıfları AbstractMap sınıfını genişletir, ancak HashMap sınıfı Map arabirimini ve TreeMap, NavigableMap ve SortedMap arabirimini uygular.
  4. Değerler her ikisinde de istediğiniz zaman boş olabilir, ancak anahtarın HashMap'te yalnızca bir kez Boş olmasına izin verilir ve bir anahtar hiçbir zaman Treemap'te olamaz.
  5. HashMap’in performansı, harita öğelerini TreeMap’in yaptığı gibi sıralamak için zaman kaybetmez. Bu nedenle, TreeMap HashMap’ten daha yavaş çalışır.

Sonuç:

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.