cuốn sách gpt4 ai đã làm

Có HashMap đồng thời & tự hết hạn & được đặt hàng trong java

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 19:01:31 28 4
mua khóa gpt4 Nike

Tôi đang sử dụng ổi từ google ConcurrentHashMap(thông qua MapMaker), nhưng việc triển khai đó không được sắp xếp. Có trên google ổi Đồng thờiSkipListMap, nhưng cấu trúc không hết hạn.

Có cấu trúc nào có thể làm cả hai cùng một lúc không?

câu trả lời hay nhất

tôi sẽ sử dụng Đồng thờiSkipListMap Và lặp lại bản đồ định kỳ để xóa nội dung đã hết hạn. Vì danh sách bỏ qua không bị giới hạn, điều này dẫn đến khả năng rò rỉ bộ nhớ khi luồng trục xuất không thể bắt được nó, nhưng trên thực tế, điều này có vẻ rất rất khó xảy ra trừ khi bạn làm điều gì đó quyết liệt. Tôi cũng đã làm một việc như thế này, nhưng tôi không muốn sử dụng chuỗi nền:

AtomicInteger tĩnh cnt = new AtomicInteger();

Val đặt(phím K, V val){
//Làm những việc bình thường
if(cnt.getAndIncrement() % 100 == 0){
// lặp lại bản đồ và loại bỏ nội dung
}
}

if(cnt.getAndIncrement() % 100 == 0) Có thể là một "tối ưu hóa thông minh", vì vậy có thể bạn có thể lặp lại và loại bỏ mọi lúc như matt b đã đề xuất.

Ồ, và chỉ có một lưu ý khi bạn thực hiện việc này... hãy đảm bảo phá vỡ sự bình đẳng giữa các thực thể khác nhau khi dấu thời gian trùng nhau:

lớp thực thể chèn vào Comparable{
AtomicInteger tĩnh SEQ = AtomicInteger mới();
int id = SEQ.getAndIncrement();
long timeStamp = System.currentTimeMillis();

int so sánhTo(Thực thể khác){
// so sánh theo dấu thời gian
// Nếu dấu thời gian bằng nhau, đừng trả về 0 nữa!!
// So sánh theo id và trả về 0 CHỈ NẾU id bằng.
// Nếu không, các thực thể sẽ biến mất khỏi bản đồ đã đặt hàng của bạn và
// việc gỡ lỗi thực sự khó chịu.
}

Về java - Có HashMap đồng thời & tự hết hạn & được đặt hàng trong java không, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/6146384/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress