Có lớp nào trong Java, có chứa một mảng các phần tử theo thứ tự và được tối ưu hóa để tìm kiếm nhanh không?Cả hai danh sách hoặc mảng được băm và lập chỉ mục?
I.e. Tôi cần truy xuất các phần tử theo cả chỉ mục số (như trong Vector
) và bằng hàm băm (như trong HashMap
).
LinkedHashMap không phù hợp
Tôi nghĩ LinkedHashMap
không phù hợp vì nó đảm bảo trật tự, nhưng không cho phép truy nhập nhanh bằng chỉ số (số vị trí). Theo mô tả, nó sẽ yêu cầu phải đi qua toàn bộ chuỗi để tìm một vị trí nhất định. Đây là những gì bất kỳ Collection
có thể với iterator.
EDIT 2
Tức là cả tìm kiếm theo khóa và theo chỉ mục phải nhanh, không chỉ bằng khóa.
Tôi nghĩ phương thức 'toArray()' sẽ quét toàn bộ bộ sưu tập mà sẽ làm cho vô nghĩa của tất cả các điểm. –
@SuzanCioc thực sự. Đó là lý do tại sao tôi nói trong câu trả lời của tôi, nó chỉ có ý nghĩa nếu bản đồ của bạn thay đổi không thường xuyên và bạn có thể cache mảng –