Відповіді:
По-перше: a List- це a Collection. Це спеціалізованийCollection , однак, .
А Collection це тільки те: колекція предметів. Ви можете додавати речі, видаляти речі, перебирати речі та запитувати, скільки там вмісту.
A Listдодає до нього інформацію про певну послідовність матеріалів: Ви можете отримати елемент у положенні n , ви можете додати елемент у положенні n , ви можете видалити елемент у положенні n .
У Collectionви не можете цього зробити: "5-й елемент цієї колекції" не визначений, оскільки немає визначеного порядку.
Є й інші спеціалізовані колекції, наприклад, Setяка додає функцію, що вона ніколи не буде містити один і той же елемент двічі.
Collectionє кореневим інтерфейсом до ієрархії колекцій Java. Listце один інтерфейс, який визначає впорядковану колекцію, інші підінтерфейси - Queueце, як правило, зберігати елементи, готові до обробки (наприклад, стек ).
Наведена нижче схема демонструє зв'язок між різними типами колекції java:
Mapце не так Collection.
Java API найкраще відповісти на це
Колекція
Кореневий інтерфейс в ієрархії колекції. Колекція представляє групу предметів, відомих як її елементи. Деякі колекції дозволяють повторювати елементи, а інші - ні. Одні впорядковані, а інші не упорядковані. JDK не забезпечує прямих реалізацій цього інтерфейсу: він забезпечує реалізацію більш конкретних підінтерфейсів, таких як Set and List. Цей інтерфейс зазвичай використовується для передачі колекцій навколо та маніпулювання ними там, де бажана максимальна загальність.
Список (розширює колекцію)
Впорядкована колекція (також відома як послідовність). Користувач цього інтерфейсу має точний контроль над тим, куди в списку вставлений кожен елемент. Користувач може отримати доступ до елементів за допомогою їх цілого індексу (позиція у списку) та здійснювати пошук елементів у списку.
На відміну від наборів, списки зазвичай дозволяють повторювати елементи. Більш формально, списки зазвичай дозволяють пари елементів e1 і e2, такі, що e1.equals (e2), і вони, як правило, дозволяють кілька нульових елементів, якщо вони взагалі дозволяють нульові елементи. Це немислимо, що хтось може захотіти реалізувати список, який забороняє дублікати, викидаючи винятки під час виконання, коли користувач намагається вставити їх, але ми очікуємо, що це використання буде рідкісним.
Список і Набір - це два підкласи колекції.
У списку дані в конкретному порядку.
У програмі Set не може містити однакові дані двічі.
У колекції він просто зберігає дані без конкретного замовлення і може містити повторювані дані.
Колекція - це інтерфейс високого рівня, що описує об'єкти Java, які можуть містити колекції інших об'єктів. Не дуже конкретно в тому, як до них звертаються, чи можуть в одній колекції існувати кілька копій одного і того ж об’єкта чи важливий порядок. Список - це спеціально упорядкована колекція об'єктів. Якщо ви помістите об’єкти в Список у певному порядку, вони залишаться в тому порядку.
І вирішити, де використовувати ці два інтерфейси, набагато менш важливо, ніж вирішити, що конкретна реалізація ви використовуєте. Це буде мати значення для часу та простору роботи вашої програми. Наприклад, якщо ви хочете список, ви можете використовувати ArrayList або LinkedList, кожен з яких матиме наслідки для програми. Для інших типів колекцій (наприклад, набори) застосовуються аналогічні міркування.