Trong một ArrayList, số hiệu quả là N (N đã giả định tương lai phát triển).
Erm, không, trừ khi tôi hiểu nhầm những gì bạn đang nói ở đây. Khi bạn chuyển một số nguyên vào hàm tạo của Arraylist, nó sẽ tạo một mảng cơ bản có kích thước chính xác. Nếu nó chỉ ra bạn cần ngay cả một phần tử phụ, ArrayList sẽ cần phải thay đổi kích thước mảng bên dưới khi bạn gọi hàm add() tiếp theo, khiến cuộc gọi này mất nhiều thời gian hơn bình thường.
Nếu mặt khác, bạn đang nói về giá trị N của bạn có tính đến tăng trưởng tài khoản - thì có, nếu bạn có thể đảm bảo giá trị sẽ không bao giờ vượt quá điều này thì gọi một hàm tạo Arraylist là phù hợp. Và trong trường hợp này, như được chỉ ra bởi Hank, nhà xây dựng tương tự cho một bản đồ sẽ là N và 1.0f. Điều này nên thực hiện hợp lý ngay cả khi bạn thực sự vượt quá N (mặc dù nếu bạn mong đợi điều này xảy ra một cách thường xuyên, bạn có thể muốn vượt qua trong một số lượng lớn hơn cho kích thước ban đầu).
Hệ số tải, trong trường hợp bạn không biết, là điểm mà tại đó bản đồ sẽ có khả năng tăng lên, như một phần nhỏ trong tổng dung lượng.
Chỉnh sửa: Yuval có lẽ đúng là nên để hệ số tải khoảng 0,75 cho bản đồ mục đích chung. Hệ số tải 1.0 sẽ thực hiện rực rỡ nếu các khóa của bạn có mã băm tuần tự (chẳng hạn như các phím số nguyên tuần tự), nhưng đối với bất kỳ thứ gì khác bạn có thể gặp phải xung đột với các nhóm băm, nghĩa là tra cứu mất nhiều thời gian hơn cho một số phần tử. Việc tạo ra nhiều nhóm hơn mức cần thiết sẽ làm giảm nguy cơ va chạm này, có nghĩa là có nhiều cơ hội hơn các thành phần nằm trong nhóm riêng của chúng và do đó có thể khôi phục trong khoảng thời gian ngắn nhất. Như các tài liệu nói, đây là một thời gian so với sự cân bằng không gian. Nếu một trong hai là đặc biệt quan trọng với bạn (như được hiển thị bởi một profiler chứ không phải là tối ưu hóa sớm!), Bạn có thể nhấn mạnh rằng; nếu không, hãy gắn bó với mặc định.
Nguồn
2009-01-12 10:18:33
Tôi đã hỏi một [câu hỏi tương tự] (http://stackoverflow.com/questions/414109/) liên quan đến .NET generic Dictionary gần đây. Bạn có thể thấy các cuộc thảo luận thú vị ở đó. –
Xem thêm http://stackoverflow.com/questions/7115445/what-is-the-optimal-capacity-and-load-factor-for-a-fixed-size-hashmap – Raedwald