Structuri de date din Collections Framework

Tipuri de date și excepții în Java

Jim White

Java Instructor

Ce este un framework

  • Un framework este un set de tipuri reutilizabile cu funcționalitate generică
    • Exemple de tipuri: clase și interfețe
    • Îmbunătățește calitatea aplicației
    • Evită crearea totul de la zero
  • Framework-urile sunt livrate în unul sau mai multe pachete Java
  • Vin cu reguli și ghiduri de utilizare

Framework-urile oferă cod predefinit cu funcționalitate generică

1 Photo by Ashkan Forouzani on Unsplash
Tipuri de date și excepții în Java

Tipuri în Java

Două categorii de tipuri în Java:

  • Tipuri primitive
    • byte, short, int, long, float, double, char, boolean
  • Tipuri referință
    • Clase
    • Interfețe
    • Enum-uri
    • Tablouri
    • ...
Tipuri de date și excepții în Java

Collections Framework

  • Collections Framework: setul integrat de tipuri generice de structuri de date în Java
    • Un pachet de tipuri pentru stocarea și manipularea unui grup de obiecte
  • Definit în pachetul java.util
    • Trebuie utilizat import pentru a accesa tipurile din framework
Tipuri de date și excepții în Java

Ce este cu tablourile?

  • Tablourile Java pot stoca un grup de obiecte sau primitive
    • Collections Framework oferă o alternativă de structuri de date
  • Ambele au avantaje și dezavantaje
Tablouri Colecții
Dimensiune fixă Dimensiune dinamică (cresc și scad)
Stochează primitive sau obiecte Stochează doar obiecte
Omogene - elementele trebuie să fie de același tip Eterogene - obiectele pot fi diferite
Notație specială de acces [] Folosește metode pentru acces
Sintaxă specială de inițializare {} Folosește new (fără sintaxă specială)
Tipuri de date și excepții în Java

Tipuri din Collections Framework

  • Collections Framework are două tipuri de bază: Collection și Map
    • Reprezentate prin două interfețe: java.util.Collection & java.util.Map
    • Ambele au mai multe clase de implementare
  • import java.util.*; pentru a utiliza orice tip din Collections Framework

Collections Framework are două tipuri de bază: Collection și Map

Tipuri de date și excepții în Java

Collection

  • Collection definește mai multe tipuri de grupări de obiecte
    • Definite prin interfețe suplimentare
  • Grup ordonat de obiecte: List
  • Grup neordonat de obiecte: Set
  • Grup de tip primul-intrat-primul-ieșit: Queue
    • Funcționează ca o coadă la bancă sau la casă
  • .add(Object) și .remove(Object) pentru a modifica orice Collection

Collection include List, Set și Map

Tipuri de date și excepții în Java

Map

  • Structurile Map funcționează ca un agende telefonice sau dicționare
    • Obiecte „cheie" -> obiecte „valoare"
    • Într-o agendă, un nume -> număr de telefon
    • Într-un dicționar, un cuvânt -> definiție
  • Se folosește cheia pentru a modifica un Map
    • .put(Object key, Object value) pentru adăugare
    • .remove(Object key) pentru ștergere
  • Există mai multe tipuri de Map - ex. HashMap

Structura de date Map funcționează ca o agendă telefonică sau un dicționar

Tipuri de date și excepții în Java

Generice

  • Collections și Maps sunt „parametrizate"
    • Genericele Java specifică tipul obiectelor dintr-un Collection sau Map
    • Sintaxă generică: <Class> cu un tip parametrizat.
      • < > se numește operatorul diamond
ArrayList<String> list = new ArrayList<String>();  // Construct with generics
Tipuri de date și excepții în Java

Generice și siguranța tipurilor

  • Genericele asigură o siguranță mai bună a tipurilor
    • Restricționează obiectele permise în Collection și 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
Tipuri de date și excepții în Java

Fără utilizarea genericelor

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

list2.add("hello");                 // Now any type of object can be added
list2.add(new Integer(5));
Tipuri de date și excepții în Java

Declararea și atribuirea variabilelor

  • Declararea și atribuirea variabilelor pot fi realizate separat
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
Tipuri de date și excepții în Java

Să exersăm!

Tipuri de date și excepții în Java

Preparing Video For Download...