Java Hashtable có một hàm tạo, trong đó bạn có thể chỉ định một loadFactor. Tuy nhiên, nếu initialCapacity (n) được biết, điểm xác định loadFactor là gì?Java HashTable LoadFactor
Giả sử rằng kích thước của mảng của xô (s) là hằng số, không các nhà xây dựng Hashtable(int initialCapacity, float loadFactor)
chỉ cần tạo một bảng băm có công suất hơn initialCapacity để đảm bảo loadFactor có đúng không?
Hệ số tải cho biết khi nào để thay đổi kích thước mảng. Một yếu tố tải cao hơn có nghĩa là thay đổi kích thước sau và nhiều va chạm hơn. –
câu hỏi đặt ra là gì, tôi nghĩ (và tại sao tôi nghĩ đây là một câu hỏi thú vị) là: họ có thực sự chỉ sử dụng 'initialCapacity' để cho một kích thước ban đầu một cách mù quáng không? bởi vì, nếu có, chúng sẽ cần phải thay đổi kích thước khi các giá trị 'initialCapacity' được thêm vào (trừ khi loadFactor là 1). do đó, giả sử rằng 'initialCapacity' thường là một ước tính chính xác về số lượng giá trị sẽ được thêm vào, sẽ không có ý nghĩa hơn để tính toán kích thước ban đầu sao cho các điểm' initialCapacity' có thể được thêm mà không thay đổi kích thước? nói cách khác: công suất ban đầu có nghĩa là ban đầu * kích thước bảng * hoặc công suất * ban đầu *? –
@andrewcooke: Tôi hiểu ý của bạn, nhưng theo [Javadoc] (http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html), "The * capacity * là số lượng * nhóm * trong bảng băm "(in nghiêng trong bản gốc), vì vậy không có mâu thuẫn ở đây - chỉ, có lẽ, một sự lựa chọn nghèo nàn của từ. – ruakh