Maps

Tipuri de date și excepții în Java

Jim White

Java Developer

Map-urile sunt tabele de căutare

  • Map-urile sunt structuri de date de tip tabel de căutare
    • Stochează o „valoare" la o anumită „cheie"
    • Utilizați „cheia" pentru a recupera „valoarea" stocată
  • Exemplu: apelarea unui medic
    • Acesta caută dosarul medical (obiectul valoare) folosind numele/data nașterii (cheia)

Map-urile sunt structuri de căutare, similar cu modul în care un cabinet medical caută dosarul pacientului după nume și dată de naștere

Tipuri de date și excepții în Java

Interfața Map

  • Interfața Map definește operațiile asupra perechilor cheie-valoare
    • Cum să stocați sau să „puneți" o valoare la o cheie specificată
    • Cum să „eliminați" valoarea asociată unei chei din Map
    • Cum să recuperați valoarea pe baza unei chei
  • Există mai multe implementări ale Map cu comportament similar
    • O implementare populară a Map este HashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Tipuri de date și excepții în Java

Chei și valori HashMap

Cheile și valorile unui Map sau HashMap pot fi de același tip sau de tipuri diferite

Tipuri de date și excepții în Java

Construirea unui HashMap

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • Constructorul parametrizat/generic pentru HashMap necesită două tipuri

    • Primul tip = tipul cheii

      Primul parametru generic al HashMap este pentru chei

    • Al doilea tip = tipul valorii

      Al doilea parametru generic al HashMap este pentru valori

Tipurile cheie și valoare din generics specifică tipul de date pentru chei și valori

  • Necesită importul java.util.HashMap
Tipuri de date și excepții în Java

Metode HashMap

  • Utilizați .put(key,value) pentru a adăuga perechi cheie/valoare
  • Utilizați .remove(key) pentru a elimina perechea de la cheia specificată
  • Utilizați .get(key) pentru a recupera valoarea asociată cheii
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Tipuri de date și excepții în Java

Collections

  • java.util.Collections este o clasă auxiliară
  • Utilizată pentru sortare, umplere, copiere, căutare și altele
    • Conține doar metode static
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Tipuri de date și excepții în Java

Metode Collection

  • Adăugați mai multe obiecte într-un List
    • addAll(List list, Object a, b, ...)
  • Returnați numărul de apariții ale unui obiect
    • frequency(Collection c, Object o)
  • Inversați ordinea obiectelor dintr-un List
    • reverse(List list)
  • Sortați obiectele dintr-un List
    • sort(List list)
  • Înlocuiți toate obiectele dintr-un List cu un alt obiect
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Tipuri de date și excepții în Java

Arrays

  • Uneori este necesară conversia unui array (ex., int[]) într-un List
    • Array-urile Java nu sunt redimensionabile, iar elementele pot trebui extinse/reduse
    • List oferă capabilități suplimentare (căutare, sortare etc.)
  • java.util.Arrays este o altă clasă auxiliară
    • Permite conversia unui array Java într-un List
Tipuri de date și excepții în Java

Exemplu Arrays

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Tipuri de date și excepții în Java

Să exersăm!

Tipuri de date și excepții în Java

Preparing Video For Download...