TGViewer
Библиотека Java разработчика Библиотека Java разработчика @bookjava · 10K subscribers
Post #3701 1.71K
💡 Collection vs List в Java: в чём разница и когда что использовать

Сегодня разберёмся с одним из самых популярных вопросов у джавистов: чем отличается Collection от List и когда что применять.


🔹 Collection — это базовый интерфейс всех коллекций в Java. Он описывает общие операции:
add(), remove(), size(), contains() и т.д.

🔹 List — это подинтерфейс Collection, предназначенный для работы с упорядоченными списками.
Дополнительно даёт методы:
get(index), set(index, value), indexOf(), add(index, value).


🔧 Пример с Collection:

Collection<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");

for (String name : names) {
System.out.println(name);
}


Здесь важно только наличие элементов — порядок и индексы не важны.


🔧 Пример с List:

List<String> cities = new ArrayList<>();
cities.add("Moscow");
cities.add("Berlin");
cities.add(1, "Paris");

System.out.println(cities.get(1)); // Paris


В этом случае нужен порядок и доступ по индексу — значит, выбираем List.


📌 Когда использовать что:

- Используй Collection, если хочешь абстрагироваться от конкретной структуры и не используешь индексы.
- Используй List, если:
- важен порядок добавления,
- нужен доступ по индексу,
- требуется вставка в определённое место.

🧠 Совет:
При проектировании методов или API лучше принимать Collection — так ты не ограничиваешь пользователя в реализации.
А если внутри метода тебе нужны индексы — переходи на List.

👉@BookJava
  • 👍 3
More from @bookjava
  1. Sep 30, 2026Три похожих слова в Java — final, finally, finalize — но смысл у них совершенно разный. Ра…
  2. Sep 27, 2026🧠 Ленивая инициализация через Supplier — элегантная альтернатива double-checked locking К…
  3. Sep 23, 2026Что такое механизм try-with-resources? Механизм try-with-resources в Java — это конструкци…
  4. Sep 21, 2026📌 picocli — это современная библиотека для создания CLI-приложений на Java. Она упрощает…
  5. Sep 18, 2026Double-brace инициализация в Java — это идиома, которая используется для инициализации кол…
  6. Sep 16, 2026🧠@Value vs @ConfigurationProperties — не выбирай наобум Оба способа хороши для конфигурац…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →