2012-08-24 33 views
5

Nếu nhìn vào collection framework bạn sẽ thấy như sau, nhưng Bản đồ không nằm trong danh sách giao diện. Trong khi chúng ta nói về bản đồ, chúng ta nói nó là một phần của khuôn khổ bộ sưu tập, vì vậy nếu Map là một phần của khung thu thập thì tại sao nó không có trong danh sách giao diện.Bộ sưu tập Java không có Bản đồ như một phần của khung tuyển tập

java.util 
Interface Collection 

All Known Subinterfaces: 
    BeanContext, BeanContextServices, List, Set, SortedSet 

All Known Implementing Classes: 
    AbstractCollection, AbstractList, AbstractSet, ArrayList, BeanContextServicesSupport, BeanContextSupport, HashSet, LinkedHashSet, LinkedList, TreeSet, Vector 
+1

Bài đăng tương tự: http://stackoverflow.com/questions/5700135/why-does-map-not-extend-collection-interface –

Trả lời

5

Maps làm việc với key/value pairs, trong khi other collections hoạt động với just values. Ánh xạ các khóa bản đồ tới các giá trị. Nó cho phép nội dung của nó được xem như một tập hợp các khóa, một tập hợp các giá trị và một tập hợp các ánh xạ khóa-giá trị.

Kiểm tra liên kết sau. Trả lời bởi oracle. https://docs.oracle.com/javase/tutorial/collections/

8

"Giao diện bộ sưu tập" và giao diện Collection không giống nhau.

Khi bạn có thể coi bản đồ là tập hợp các mục nhập, Map không hỗ trợ trực tiếp - bạn có thể nhận một tập hợp các mục nhập với phương pháp entrySet.

Nhưng về cơ bản bạn cần phân biệt giữa "khung thu thập" và giao diện Collection.

0

Giao diện Map không phải là phần mở rộng của giao diện Collection. Tuy nhiên, nó là một cấu trúc để giữ các bộ sưu tập dữ liệu.

2

Vì Bản đồ là ba bộ sưu tập: Khóa, giá trị và cặp khóa-giá trị.

Nó không phải dễ dàng để quyết định cái nào nên là mặc định để lặp qua, vì vậy nó thực hiện giao diện ba lần (keySet(), values()entrySet())

2

Đó là một phần của khuôn khổ bộ sưu tập nhưng nó không thực hiện Giao diện java.util.Collection.

Đó là một nhánh khác của cấu trúc phân cấp. Nếu bạn muốn, bạn có thể xem nó trên cùng một cấp độ phân cấp như giao diện Bộ sưu tập.

Giao diện Bộ sưu tập được thực hiện bởi (là gốc của) Bộ sưu tập giống như danh sách trong khi Bản đồ được thực hiện bởi (là gốc của) các bộ sưu tập giống như KEY-VALUE.

Các vấn đề liên quan