Như Kevin Bowersox nói, nó đơn giản như
List<String> result = (List<String>) hMap.values().toArray()[position];
Nhưng cần lưu ý rằng điều này vẫn sẽ lặp bằng cách sử dụng .toArray(). Đó là một tuyên bố đơn giản và tôi không chắc chắn nếu có một với hiệu suất tốt hơn, nhưng lưu ý rằng sự phức tạp không phải là log (n) (như truy cập được lập chỉ mục trong trường hợp B *), nhưng chỉ n. Vì LinkedHashMap dựa trên LinkedList, không có cách nào để truy cập ngẫu nhiên các phần tử, chỉ theo thứ tự tuần tự.
Việc truyền vào Danh sách là một điều ác không thể tránh khỏi, vì .toArray() tuân theo khái niệm cổ xưa về việc trả về đối tượng thay vì kiểu dữ liệu chung.
Mặc dù điều này có thể không phải là khái niệm chính của bản đồ, nhưng LinkedHashMap không chỉ là bản đồ. nó mở rộng HashMap, và như là một lớp mở rộng, nó hoàn toàn tốt để mang lại các phương thức bổ sung hỗ trợ các idiosyncracies của lớp đó.
Nếu bạn chọn cấu trúc dữ liệu này một mình thì có lẽ nó không phải là tốt nhất cho nhiệm vụ này. –
@NikolayKuznetsov: bạn có thể gợi ý cho tôi cấu trúc của nó không? – MAC
ArrayList nếu bạn trích xuất các phần tử chỉ bằng chỉ mục –