Kịch bản:Java - Triển khai Danh sách tròn tròn, và đếm số lần truy cập của phần tử?
Đối với một danh sách đó có 3 yếu tố [A, B, C]:
Bạn có thể truy cập tròn nó nhiều lần như bạn muốn. Và có một chức năng đếm bổ sung ghi lại số lượng truy cập của từng phần tử.
Ví dụ, nếu truy cập vào nó 7 lần, nên quay lại:
[A, B, C, A, B, C, A]
Và có đếm truy cập của mỗi yếu tố như sau:
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 3 | +–––––––––––––––––––––––––––+ | B | 2 | +–––––––––––––––––––––––––––+ | C | 2 | +–––––––––––+–––––––––––––––+
Bất kỳ phản ứng sẽ được đánh giá rất nhiều.
Trân trọng.
Cập nhật
Thêm một chức năng bổ sung cho phép người gọi để xác định một danh sách các yếu tố nên được lọc. Vẫn sử dụng 7 lần truy cập như một ví dụ, lọc [C]:
[A, B, A, B, A, B, A]
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 4 | +–––––––––––––––––––––––––––+ | B | 3 | +–––––––––––––––––––––––––––+ | C | 0 | +–––––––––––+–––––––––––––––+
Và, sự kêu gọi tiếp theo trên getNextOne() nên luôn luôn lấy một trong đó truy cập count thấp (Mô phỏng một tải- thực hiện đếm số lượt truy cập cân bằng.). Vì vậy, nếu cố gắng gọi thứ hai để truy cập nó 10 lần, nên quay lại:
[C, C, C, B, C, A, B, C, A, B, C, A]
+–––––––––––+–––––––––––––––+ | Element | Access count | +–––––––––––––––––––––––––––+ | A | 7 | +–––––––––––––––––––––––––––+ | B | 6 | +–––––––––––––––––––––––––––+ | C | 6 | +–––––––––––+–––––––––––––––+
Việc triển khai này rất thanh lịch. Cảm ơn bạn rất nhiều vì đã trả lời nhanh chóng! – Wuaner
Tôi đã cập nhật câu hỏi của mình. – Wuaner
@Wuaner vui lòng tạo câu hỏi mới, đừng cập nhật sau hơn 1 năm, cảm ơn. –