2010-08-25 6 views
14

I10 elemanları artar 10 bir başlangıç ​​kapasitesi ve daha sonra her 5 elemanları HashSet artırılacaktır ilave 0.5 veya birinci HashSet bir yük faktörü ile ve 15 ° C'de 20 de sonra HashSet kullanın ATC. kapasite artırılacak mı?HashSet doluluk

cevap

3

Bu ikinci durumdur. HashSet ve hashMap öğelerinin loadFactor bir göreli faktördür.

19

Yük faktörü, HashSet'in kapasitesinin otomatik olarak artırılmasından önce ne kadar dolu olduğuna izin vermenin bir ölçüsüdür. Karma tablodaki giriş sayısı yük faktörünün ve akım kapasitesinin ürününü aştığında, karma tablosu yeniden düzenlenir (yani, iç veri yapıları yeniden oluşturulur), böylece karma tablonun yaklaşık olarak iki katı kova sayısı vardır. HashMap Standart başlangıç ​​kapasitesi alır

source

+0

güzel olur !!! Bir süredir bu açıklamayı arıyordum. Öyleyse, varsayılan değer 2/3'dür, yani 12'yi doldurduğumda 16 büyüklüğünde, alanı artıracaktır. – ha9u63ar

+0

Java 7 ve 8 için, HashSet'in varsayılan yük faktörü 0.75'dir. – Kent

2

16 ve yük faktörü (akım haritası boyutu yani% 75) 0.75f ​​olup. Yük faktörü, HashMap kapasitesinin iki katına çıkarılması gerektiğini gösterir. kapasite ve yük faktörü, örneğin bir ürün için

16 * 0.75 = 12. Bu 12. depolanmasıyla sonra bu temsil eder - değer çifti HashMap içine kapasitesi 32