Колекції - базові принципи
- Група зазвичай має (я б навіть сказав - повинна мати) базовий набір функцій - додати, видалити, пройтися по всьому списку, отримати елемент. Але також виникає необхідність мати додаткові можливості, які є специфічними. Саме цим визначається різноманітність класів колекцій
- Група включає об'єкти в переважній більшості випадків однотипних (одного класу). Хоча бувають винятки
базовий функціонал
- Набір базових інтерфейсів для нексолькіх типів колекцій
- Набір класів для реалізації базових інтерфейсів з різними «споживчими» характеристиками
- Набір алгоритмів для роботи з колекціями
базові інтерфейси
В офіційній документації вони все перераховані, але я не буду поки приводити його повністю, напишу поки найважливіші (на мій погляд звичайно). Основна ідея при розгляді цих інтерфейсів має бути така - досить розумні люди розробили список методів, які вкрай важливі для певних типів колекцій - списків, множин, черг і прочая. Список має свої особливості, безліч - свої, чергу - свої. Набір методів для списку і для безлічі буде відрізнятися, тому що ці типи колекцій (список і безліч) мають деякі важливі відмінності. Розглядайте їх як спеціалізовані інструменти - наприклад, для закручування шурупів потрібен шуруповоерт, для бетонних стін - перформатор, для свердління лунки - ледобур. Зауважте, що вони всі мають «одну природу», але кожен має деяку спеціалізацію:
Тобто якщо вам потрібно, щоб колекція володіла такими властивостями - вибирайте клас, який реалізує інтерфейс java.util.ListІ ще раз скажу найважливіше - колекція дозволяє вам працювати з групою об'єктів і спеціалізація колекції визначається вимогами до самих даних і до тих операцій, які потрібно використовувати при роботі з даними.