Đây là tình huống của tôi. Tôi đang sử dụng hai java.util.HashMap để lưu trữ một số dữ liệu thường được sử dụng trong một ứng dụng web Java chạy trên Tomcat. Tôi biết chính xác số lượng các mục nhập vào mỗi Hashmap. Các phím sẽ là chuỗi và int tương ứng.Hiệu suất của HashMap với công suất ban đầu khác nhau và hệ số tải
Câu hỏi của tôi là, cách tốt nhất để đặt công suất ban đầu và máy tính tải là gì?
Tôi có nên đặt dung lượng bằng số lượng phần tử sẽ có và khả năng tải lên 1.0 không? Tôi muốn có hiệu suất tốt nhất tuyệt đối mà không cần sử dụng quá nhiều bộ nhớ. Tuy nhiên, tôi sợ rằng bàn sẽ không lấp đầy tối ưu. Với một bảng kích thước chính xác cần thiết, sẽ không có va chạm chính, gây ra một (thường ngắn) quét để tìm các yếu tố chính xác?
Giả sử (và đây là một đoạn dài) hàm băm là một mod đơn giản 5 của các phím số nguyên, điều đó có nghĩa là các phím 5, 10, 15 sẽ trúng cùng một nhóm và sau đó gây ra tìm kiếm các thùng bên cạnh chúng? Liệu hiệu suất tăng cường công suất ban đầu lớn hơn?
Ngoài ra, nếu có cơ sở hạ tầng tốt hơn so với băm bản đồ cho điều này, tôi cũng hoàn toàn mở cửa cho điều đó.
Có bao nhiêu mục nhập trong bản đồ và độ dài trung bình của khóa chuỗi là bao nhiêu? – Avi
tổng số mục nhập sẽ nằm trong khoảng từ 20 - 50 và độ dài khóa chuỗi sẽ có số ký tự trong khoảng từ 10-30 –
Điều đó khá nhỏ, bạn có chắc chắn thậm chí cần phải lo lắng về nó không? Trừ khi bạn có rất nhiều trường hợp chỉ cần đi với các tham số HashMap mặc định. – starblue