2016-11-30 37 views
9

Java8'den dolayı, sevgili HashMap biraz farklı davranıyor. Anahtar, karşılaştırılabilir bir arabirim uygularsa, her karma, bağlantılı bir liste yerine dengeli bir ağaç içerir.Java7'nin Hashmap uygulamasının Java8 uygulaması için tercih edildiği bir senaryo var mı?

Bu Java8 için Java7 dan hangi yükseltme bir sonucu olarak HashMap performansının düşmesine neden olacak bir durum var mı JEP180

bkz O(log(n)) için O(n) gelen çatışmalar sonucunda en kötü zamanı karmaşıklığını azaltır?

+4

karı değer olup olmadığını

Ayrıca emin değilim. ;) – marstran

cevap

2

Java8,> N'de, N seçildiğinde empirically'daki kepçedeki giriş sayısında dengeli ağaç kullanacak ve bu sayı < K ise listeyi bir kez daha kullanacaktır. Kovadaki giriş sayısı daha kötü performans beklerdim "treefyng/untreeifying" ifadesinin sık sık meydana geldiği değişiklikler. Bu belirli karma işlevi nedeniyle olabilir. ağacı oluşturma ve sorgulamak için havai sana compareTo` `gerçekten yavaş uygulanışını varsa performans kötüye sanırım küçük N.