Load Factor Là Gì

     

HashMapcó hai đặc điểm quan trọng: sizevà load factor. Tôi vẫn xem qua tài liệu Java và nó nói 0.75flà thông số tải ban đầu. Nhưng tôi quan trọng tìm thấy vấn đề sử dụng thực tiễn của nó.

Bạn đang xem: Load factor là gì

Bạn đã xem: Load factor là gì

Ai đó rất có thể mô tả những kịch bạn dạng khác nhau mà họ cần đặt thông số tải là gì và một trong những giá trị hài lòng mẫu cho những trường hợp khác nhau là gì không?

Các tài liệu lý giải nó hơi tốt:

Một phiên bạn dạng của HashMap gồm hai tham số ảnh hưởng đến năng suất của nó: dung lượng ban sơ và thông số tải. Dung tích là con số xô trong bảng băm và công suất lúc đầu chỉ dễ dàng và đơn giản là hiệu suất tại thời điểm bảng băm được tạo. Thông số tải là thước đo mức độ vừa đủ của bảng băm được phép nhận trước khi công suất của nó được auto tăng lên. Khi con số mục vào bảng băm quá quá sản phẩm của hệ số tải và năng suất hiện tại, bảng băm được demo lại (nghĩa là cấu trúc dữ liệu nội cỗ được xuất bản lại) nhằm bảng băm gồm số lượng gấp hai số lượng.

Xem thêm: Ăn Chay Không Phải Là Tu - Ăn Chay Không Bằng Tu Tâm Tính

Như với tất cả các tối ưu hóa hiệu suất, một ý tưởng giỏi là tránh tối ưu hóa rất nhiều thứ mau chóng (nghĩa là không tồn tại dữ liệu cứng về địa điểm tắc nghẽn).

Xem thêm: Xem Phim Bão Tố Cuộc Đời Tập 1 Full Hd, Tập 1 Bão Tố Cuộc Đời

những câu trả lời khác đang lời khuyên chỉ định capacity = N/0.75để tránh rèn luyện lại, nhưng mà suy nghĩ lúc đầu của tôi new được đưa ra load factor = 1. Sẽ có nhược điểm cho cách tiếp cận đó? vì sao yếu tố tải ảnh hưởng get()và put()chi giá thành vận hành? thông số tải = 1 hashmap với con số mục = dung lượng sẽ những thống kê có số lượng va va đáng đề cập (= khi nhiều khóa tạo ra cùng một hàm băm). Khi xẩy ra xung đột, thời hạn tra cứu vãn tăng lên, vày trong một đội nhóm sẽ có> 1 mục khớp, trong các số ấy khóa phải được bình chọn riêng cho việc bằng nhau. Một số phép toán bỏ ra tiết: preshing.com/20110504/hash-collision-probabilities — atimb 8 Tôi không áp theo dõi các bạn atimb; ở trong tính loadset chỉ được áp dụng để xác định lúc nào cần tăng size lưu trữ đề nghị không? - Làm gắng nào để có một bộ tải của một tăng khả năng va chạm băm? - Thuật toán băm không tồn tại kiến ​​thức về con số vật phẩm trong bạn dạng đồ hoặc gia tốc sử dụng "xô" lưu trữ mới, v.v ... Đối với ngẫu nhiên nhóm đối tượng nào có cùng kích thước, bất kể chúng được giữ trữ như thế nào, chúng ta nên có cùng xác suất của các giá trị băm lặp đi tái diễn ... phần trăm va va băm là ít hơn, nếu size của bạn dạng đồ to hơn. Ví dụ: các thành phần có mã băm 4, 8, 16 và 32 sẽ được đặt trong cùng một nhóm, nếu size của bạn dạng đồ là 4, nhưng các mục sẽ có một nhóm riêng, nếu form size của phiên bản đồ lớn hơn 32. Bạn dạng đồ cùng với kích thước ban sơ 4 và thông số tải 1.0 (4 xô, nhưng toàn bộ 4 nhân tố trong một nhóm) sẽ trong ví dụ như này trung bình lừ đừ hơn nhị lần đối với một thông số khác với thông số tải 0,75 (8 xô, nhị xô đầy - với bộ phận "4" với với các phần tử "8", "16", "32"). — 30h 1 giá cả tra cứu Adelin được tăng cho các yếu tố tải cao hơn nữa vì sẽ có tương đối nhiều xung bỗng dưng hơn cho các giá trị cao hơn và bí quyết Java xử lý những xung hốt nhiên là bằng phương pháp đặt các mục gồm cùng mã băm vào cùng một nhóm bằng kết cấu dữ liệu. Bước đầu trong Java 8, cấu trúc dữ liệu này là 1 trong cây tìm kiếm kiếm nhị phân. Điều này làm cho cho việc tìm kiếm phức hợp trong trường vừa lòng xấu tốt nhất O (lg (n)) cùng với trường hợp xấu nhất xẩy ra nếu toàn bộ các yếu đuối tố nhận thêm vào gồm cùng mã băm.

Ví dụ thành phầm của năng suất và thông số tải như 16 * 0.75 = 12. Điều này biểu đạt rằng sau thời điểm lưu trữ cặp khóa - quý giá thứ 12 vào HashMap, dung tích của nó phát triển thành 32.

tuy nhiên câu trả lời của bạn rất rõ ràng, chúng ta cũng có thể vui lòng cho biết ngay sau thời điểm lưu trữ 12 cặp khóa-giá trị, dung tích trở thành 32 hay là lúc mục máy 13 có thêm vào, tại thời điểm đó, dung lượng biến hóa và tiếp đến mục nhập được chèn.