Tôi đang cố gắng tạo một LinkedHashMap đồng thời cho một kiến trúc đa luồng.Thực hiện một LinkedHashMap đồng thời
Nếu tôi sử dụng Collections#synchronizedMap()
, tôi sẽ phải sử dụng các khối được đồng bộ hóa để lặp lại. Việc triển khai này sẽ dẫn đến việc bổ sung thêm các phần tử.
Nếu tôi sử dụng ConcurrentSkipListMap
thì có cách nào để triển khai Comparator
để lưu trữ tuần tự, như được lưu trữ trong Danh sách liên kết hoặc hàng đợi không.
Tôi muốn sử dụng java được tích hợp sẵn thay vì gói của bên thứ ba.
EDIT:
Trong đồng thời LinkedHashMap
này, nếu các phím được tên, tôi muốn đặt liên tiếp các phím đến họ. tức là giá trị mới sẽ được thêm vào lúc bắt đầu hoặc kết thúc, nhưng theo tuần tự.
Trong khi lặp lại, LinkedHashMap
có thể được thêm vào với mục nhập mới hoặc bị xóa. nhưng lặp lại phải là chuỗi trong đó các mục nhập được thêm vào.
Tôi hiểu rằng bằng cách sử dụng Collections#synchronizedMap()
, khối được đồng bộ hóa cho lặp lại sẽ phải được triển khai, nhưng bản đồ có thể sửa đổi được (mục có thể được thêm/xóa) trong khi đang được lặp lại.
Bạn đang nói về điều gì? Bạn đang cố gắng "lưu trữ tuần tự"? Xin vui lòng cho biết thêm chi tiết - thật khó để hiểu những gì bạn đang thực sự cố gắng làm vào lúc này. –
Bạn đang cố gắng lưu trữ tuần tự? Nếu các khóa của bạn có thứ tự xác định thì bạn sẽ có thể viết một Trình so sánh. Có lẽ bạn nên cung cấp thêm thông tin về các phím trong bản đồ của bạn và cách bạn muốn chúng được đặt hàng. –