Datové struktury Collections Framework

Datové typy a výjimky v Javě

Jim White

Java Instructor

Co je to framework

  • Framework je sada znovupoužitelných typů poskytující obecnou funkcionalitu
    • Příklady typů: třídy a rozhraní
    • Zvyšuje kvalitu aplikace
    • Není třeba vytvářet vše od základu
  • Frameworky jsou v Javě dodávány jako balíčky
  • Frameworky jsou dodávány s pokyny a pravidly pro použití

Frameworky poskytují předpřipravený kód s obecnou funkcionalitou

1 Photo by Ashkan Forouzani on Unsplash
Datové typy a výjimky v Javě

Typy v Javě

Dvě kategorie typů v Javě:

  • Primitivní typy
    • byte, short, int, long, float, double, char, boolean
  • Referenční typy
    • Třídy
    • Rozhraní
    • Výčty
    • Pole
    • ...
Datové typy a výjimky v Javě

Collections Framework

  • Collections Framework: vestavěná sada generických datových struktur Javy
    • Balíček typů pro ukládání a manipulaci se skupinou objektů
  • Definováno v balíčku java.util
    • Pro použití typů frameworku je nutný import
Datové typy a výjimky v Javě

A co pole?

  • Pole v Javě mohou uchovávat skupinu objektů nebo primitivů
    • Collections Framework nabízí alternativní datové struktury
  • Obě varianty mají výhody i nevýhody
Pole Collections
Neměnná velikost Dynamická velikost (roste a zmenšuje se)
Ukládá primitivy nebo objekty Ukládá pouze objekty
Homogenní – prvky musí být stejného typu Heterogenní – objekty mohou být různé
Speciální notace pro přístup [] Přístup pomocí metod
Speciální syntaxe inicializace {} Použití new (bez speciální syntaxe)
Datové typy a výjimky v Javě

Typy Collections Framework

  • Collections Framework se dělí na dva základní typy: Collection a Map
    • Reprezentovány dvěma rozhraními: java.util.Collection a java.util.Map
    • Oba mají několik implementačních tříd
  • import java.util.*; pro použití libovolného typu Collections Framework

Collections Framework má dva základní typy: Collection a Map

Datové typy a výjimky v Javě

Collection

  • Collection definuje různé způsoby seskupování objektů
    • Definovány dalšími rozhraními
  • Uspořádaná skupina objektů: List
  • Neuspořádaná skupina objektů: Set
  • Skupina objektů FIFO: Queue
    • Funguje jako fronta v bance nebo pokladně
  • .add(Object) a .remove(Object) pro úpravu libovolné Collection

Collection zahrnuje List, Set a Map

Datové typy a výjimky v Javě

Map

  • Datové struktury Map fungují jako telefonní seznam nebo slovník
    • Objekty „klíče" -> k objektům „hodnoty"
    • V telefonním seznamu: jméno -> číslo
    • Ve slovníku: slovo -> definice slova
  • K úpravě Map se používá objekt klíče
    • .put(Object key, Object value) pro přidání do Map
    • .remove(Object key) pro odebrání z Map
  • Mnoho typů Map – např. HashMap

Datová struktura Map funguje jako telefonní seznam nebo slovník

Datové typy a výjimky v Javě

Generika

  • Collections a Map jsou „parametrizované"
    • Java generika slouží k určení objektů v Collection nebo Map
    • Syntaxe generik: <Třída> s parametrizovaným typem
      • < > se nazývá diamantový operátor
ArrayList<String> list = new ArrayList<String>();  // Construct with generics
Datové typy a výjimky v Javě

Generika a typová bezpečnost

  • Generika umožňují lepší typovou bezpečnost
    • Omezují objekty povolené v obsahu Collection a 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
Datové typy a výjimky v Javě

Bez použití generik

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

list2.add("hello");                 // Now any type of object can be added
list2.add(new Integer(5));
Datové typy a výjimky v Javě

Deklarace a přiřazení proměnné

  • Deklaraci a přiřazení proměnné lze provést odděleně
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
Datové typy a výjimky v Javě

Pojďme procvičovat!

Datové typy a výjimky v Javě

Preparing Video For Download...