Коллекция Java не имеет Map как часть Collection framework [дубликат]

этот вопрос уже есть ответ здесь:

Если ваш взгляд на основа коллекции вы увидите следующее, Но карта не находится в списке интерфейсов. Когда мы говорим о map, мы говорим, что это часть Collection framework, поэтому, если Map является частью Collection framework, то почему его нет в списке интерфейсов.

 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 

5 ответов


Maps работы с key/value pairs, а other collections работы с just values. Карта отображает ключи на значения. Он позволяет рассматривать его содержимое как набор ключей, набор значений и набор сопоставлений ключ-значение.

, проверьте эту ссылку. Ответ оракула. https://docs.oracle.com/javase/tutorial/collections/


"рамки коллекции" и Collection интерфейс-это не одно и то же.

А вы can рассматривайте карту как набор записей,Map не поддерживает это напрямую - вы можете получить набор записей с помощью entrySet метод.

но принципиально вам нужно различать "рамки коллекции" и Collection интерфейс.


Это часть структуры коллекции, но она не реализует java.util.Collection интерфейс.

это другая ветвь иерархии. Если вы хотите, вы можете просмотреть его на том же уровне иерархии, что и интерфейс коллекции.

интерфейс коллекции реализован (является корнем) List-like коллекций, в то время как Map реализуется(является корнем) key-VALUE-like коллекций.


потому что карта-это три коллекции: ключи, значения и пары ключ-значение.

нелегко решить, какой из них должен быть по умолчанию для итерации, поэтому он реализует интерфейс три раза (keySet(), values() и entrySet())


на Map интерфейс не является продолжением Collection интерфейс. Однако это структура для хранения коллекций данных.