Tại sao một danh sách liên kết trên một mảng? Như một số người đã nói, tốc độ chèn và xóa lớn hơn.
Nhưng có lẽ chúng ta không phải sống với giới hạn của một trong hai, và có được thứ tốt nhất của cả hai, cùng một lúc ... eh?
Đối với việc xóa mảng, bạn có thể sử dụng byte 'Đã xóa', để thể hiện thực tế là một hàng đã bị xóa, do đó, việc sắp xếp lại mảng không còn cần thiết nữa. Để giảm bớt gánh nặng của việc chèn thêm hoặc thay đổi dữ liệu nhanh chóng, hãy sử dụng danh sách được liên kết cho điều đó. Sau đó, khi đề cập đến chúng, có logic của bạn đầu tiên tìm kiếm một, sau đó khác. Do đó, sử dụng chúng kết hợp mang lại cho bạn tốt nhất của cả hai.
Nếu bạn có một mảng thực sự lớn, bạn có thể kết hợp nó với một mảng khác, nhỏ hơn nhiều hoặc danh sách được liên kết trong đó một mảng nhỏ hơn chứa 20, 50, 100 mục được sử dụng gần đây nhất. Nếu cái cần thiết không nằm trong danh sách hoặc mảng được liên kết ngắn hơn, bạn chuyển đến mảng lớn. Nếu được tìm thấy ở đó, sau đó bạn có thể thêm nó vào danh sách / mảng được liên kết nhỏ hơn với giả định rằng 'những thứ được sử dụng gần đây nhất sẽ được sử dụng lại' (và có, có thể làm hỏng mục được sử dụng gần đây nhất từ danh sách). Điều này đúng trong nhiều trường hợp và đã giải quyết được một vấn đề mà tôi phải giải quyết trong một mô-đun kiểm tra quyền bảo mật .ASP, với sự dễ dàng, thanh lịch và tốc độ ấn tượng.