Tôi muốn có một đối tượng thực hiện cả giao diện Bản đồ và Danh sách trong Java. Ý tưởng này cũng tương tự như các vấn đề trong câu hỏi này: Java Ordered MapTriển khai cả giao diện Bản đồ và Danh sách trong Java?
Tôi muốn thêm cặp tên/giá trị cho một danh sách và có danh sách bảo tồn trình tự, mà còn có thể làm được tra cứu theo tên:
foo.put("name0", "value0");
foo.put("name1", "value1");
foo.get(1); --> Map.Entry("name1", "value1")
foo.get("name0"); --> "value0"
Dưới đây là các vấn đề: khi tôi tạo lớp này:
class Foo implements Map, List {
// add all methods here
}
tôi nhận được một lỗi biên dịch:
"The return type is incompatible with Map.remove(Object)"
public boolean remove(Object o) {
return false;
}
Nếu tôi không triển khai giao diện Bản đồ và Danh sách, thì có rất nhiều phương pháp thu thập Java không có sẵn để sử dụng trên cấu trúc dữ liệu này.
(Ngoài ra, lý do mà các giải pháp được đề xuất trong Java Ordered Bản đồ ở trên không hoạt động là LinkedHashMap không có một phương pháp get (int). Không thể chọn các mục theo chỉ số.)
Bạn có chống lại việc mở rộng 'LinkedHashMap', nếu không, tại sao không thử thêm phương thức' get (int) 'vào nó? –
http://www.java.net/forum/topic/jdk/java-se/implementing-both-map-and-list-impossible-0 – Adam
@Adam liên kết đó bị hỏng, nhưng tôi đoán chúng ta biết điều gì nó nói, chỉ từ URL;) – MatrixFrog