Структури даних Collections Framework

Типи даних і винятки в Java

Jim White

Java Instructor

Що таке framework

  • Framework — це набір багаторазових типів із загальною функціональністю
    • Приклади типів: класи та інтерфейси
    • Підвищує якість застосунку
    • Не треба створювати все з нуля
  • У Java framework'и постачаються в пакеті або кількох пакетах
  • Мають настанови й правила використання

Frameworks provide a pre-made set of code providing some generic functionality

1 Фото: Ashkan Forouzani на Unsplash
Типи даних і винятки в Java

Типи Java

Дві категорії типів у Java:

  • Примітивні типи
    • byte, short, int, long, float, double, char, boolean
  • Посилальні типи
    • Класи
    • Інтерфейси
    • Переліки (enums)
    • Масиви
    • ...
Типи даних і винятки в Java

Collections Framework

  • Collections Framework: вбудований у Java набір узагальнених структур даних
    • Пакет типів для зберігання й обробки групи об'єктів
  • Визначений у пакеті java.util
    • Щоб використовувати типи framework'у, слід робити import
Типи даних і винятки в Java

А як щодо масивів?

  • Масиви Java можуть містити групу об'єктів або примітивів
    • Collections Framework пропонує альтернативні структури даних
  • Обидва мають плюси й мінуси
Arrays Collections
Фіксований розмір Динамічний розмір (зростає й зменшується)
Зберігає примітиви або об'єкти Зберігає лише об'єкти
Однорідні — елементи мають бути одного типу Різнорідні — об'єкти можуть відрізнятися
Спеціальна нотація доступу [] Доступ через методи
Спеціальний синтаксис ініціалізації {} Використовує new (без спецсинтаксису)
Типи даних і винятки в Java

Типи Collections Framework

  • Collections Framework поділено на два базові типи: Collection і Map
    • Їх представляють два інтерфейси: java.util.Collection і java.util.Map
    • Обидва мають кілька класів-реалізацій
  • import java.util.*; щоб використовувати будь-які типи Collections Framework

Collections Framework has two basic types: Collection and Map

Типи даних і винятки в Java

Collection

  • Collection визначає багато способів групування об'єктів
    • Це задають додаткові інтерфейси
  • Впорядкована група об'єктів: List
  • Невпорядкована група об'єктів: Set
  • Першим прийшов — першим вийшов: Queue
    • Працює як черга в банку чи касі
  • Методи .add(Object) і .remove(Object) змінюють будь-яку Collection

Collection includes List, Set and Map

Типи даних і винятки в Java

Map

  • Структури даних Map працюють як телефонний довідник або словник
    • «key» об'єкти -> до «value» об'єктів
    • У довіднику ім'я -> номер телефону
    • У словнику слово -> його визначення
  • Використовуйте ключ, щоб змінювати Map
    • .put(Object key, Object value) щоб додати до Map
    • .remove(Object key) щоб вилучити з Map
  • Є багато типів Map, наприклад HashMap

Map data structure operates like a phonebook or dictionary

Типи даних і винятки в Java

Дженерики

  • Collections і Maps є «параметризованими»
    • Використовують дженерики Java для визначення об'єктів у Collection або Map
    • Синтаксис дженериків: <Class> із параметризованим типом
      • < > називають оператором-«ромбом»
ArrayList<String> list = new ArrayList<String>();  // Construct with generics
Типи даних і винятки в Java

Дженерики та безпека типів

  • Дженерики підвищують безпеку типів
    • Обмежують об'єкти, дозволені вмістом Collection і Map
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // Adding a String is ok
list.add(new Integer(5));  // Trying to add an Integrer causes compiler error
Типи даних і винятки в Java

Без дженериків

ArrayList list2 = new ArrayList();  // Legal but non-specific

list2.add("hello");                 // Now any type of object can be added
list2.add(new Integer(5));
Типи даних і винятки в Java

Оголошення змінної та присвоєння

  • Оголошення змінної та присвоєння можна робити окремо
ArrayList<String> list = new ArrayList<String>(); //Single line declaration and assignment

ArrayList<String> list2;    // Variable declaration...
list2 = new ArrayList<String>();  //... and assignement can be 2 statements
Типи даних і винятки в Java

Давайте потренуємось!

Типи даних і винятки в Java

Preparing Video For Download...