#9 –  Колекції у Джава (Collections Framework)

#9 – Колекції у Джава (Collections Framework)

Колекції в Джава представляють зв'язку з кількох класів, що дають можливість для створення структур даних. За урок ми навчимося використовувати класи ArrayList та LinkedList для створення динамічних масивів даних.

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

У мові Java можна створювати як прості масиви даних, так і динамічні масиви даних, що також називаються колекціями. Робота з простими типами масивів була розглянута в курсі основ Java. Подивитися відповідний урок можна тут.


Колекції в мові Java

Стандартні масиви надають лише невеликий функціонал роботи з елементами. Якщо ми захочемо додати 10 елемент до масиву, що складається з 9 елементів, то буде видана помилка. Такий підхід зовсім незручний, адже не дозволяє динамічно керувати даними в масиві.


На допомогу приходять колекції даних. У мові Java є безліч інтерфейсів для роботи з колекціями. Всі такі інтерфейси представлені нижче:



Як видно з фото, кожна колекція є саме інтерфейсом, а не класом. Основним інтерфейсом є Collection.

Ви можете створити колекцію (іншими словами: масив даних) на основі Collection або ж на основі інших інтерфейсів, що є спадкоємцями інтерфейсу Collection.

Лякатися колекцій не варто, адже колекції це лише інтерфейси, а вони у свою чергу лише набір функцій, якими ми, розробники, можемо користуватися.

Основні колекції

Крім головного інтерфейсу Collection є три інші головні формати:

  • List - колекція для створення масивів даних, де індексами є числа (0, 1, 2 тощо);
  • Set - теж саме що List, ось тільки в Set не можна додати елементи, що повторюються;
  • Map - колекція для створення масивів даних, де індексами є ключі ("one", "2", "three", тощо).


Кожен інтерфейс має інтерфейси спадкоємці, що доповнюють функціями базовий інтерфейс. Наприклад, можна створити колекцію на базі класу List, а можна розширити її функціонал за рахунок створення колекції на базі LinkedList.


Створення об'єктів на базі різних колекцій дуже схоже. У відео уроці було розглянуто лише ArrayList і LinkedList.


Колекції безумовно зручніше, ніж масиви даних. Тим не менш, не варто зловживати ними, оскільки вони займають більше оперативної пам'яті, що може вплинути на швидкість завантаження програми.


Робота з колекціями

Для роботи з колекціями необхідно підключити інтерфейси з java.util.


При створенні колекції необхідно вказати тип даних, ім'я та виділення пам'яті:

ArrayList<Float> numbers = new ArrayList<>(1);
LinkedList<String> names = new LinkedList<>();

Для роботи з елементами існує багато методів. Найчастіше використовувані представлені нижче:

  • add() - додавання елемента до кінця масиву;
  • remove() - видалення елемента з масиву за його індексом;
  • clear() - очищення всього масиву;
  • size() - отримання розміру масиву (кількість елементів);
  • addFirst() - додавання елемента на початок масиву;
  • addLast() - додавання елемента до кінця;
  • clone() - виконує клонування масиву;
  • get() - повертає елемент за індексом;
  • getFirst() - повертає перший елемент у масиві;
  • getLast() - повертає останній елемент у масиві;
  • set(index, element) – змінює значення елемента за індексом.

Вихідний код

Весь код буде доступний після підписки на проект!

Завдання до уроку

Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань

Велике завдання за курсом

Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця

Також варто подивитися

Изучение библиотек jQuery
Разработка сайта на Java Spring Boot
Изучение таск-менеджера Gulp 4
Изучение стека MEAN: MongoDB, Express, Angular и Node JS
Разработка Андроид программы с базой данных
Изучение React JS / Redux библиотеки
Коментарі (1)
Додати коментар

Альбіна 20 листопада 2024 в 16:26

У завданні "Методи динамічних масивів" сказано: "встановіть значення "5.2" для елемента за індексом 2;", але в коді-відповіді написано

new_array.set(1, 5.2f); 


що проставить значення 5.2f на місце першого індексу, а не другого, як зазначено в завданні.
Відповісти