Documente Academic
Documente Profesional
Documente Cultură
Știm că șirul este un tip de dată ce conține un set de alte date în cadrul
său. Șirul poate accepta numai date de același tip și numai numărul de
date specificat în timpul inițializării șirului. Mai precis, dimensiunea
unui șir nu se poate modifica după inițializarea sa și nu se pot stoca
mai multe tipuri de date în cadrul unui șir. Aceste limitări sunt
rezolvate printr-o abordare diferită, ce implică existența unui obiect ce
conține alte obiecte interconectate prin referințe. Acesta permite
manipularea simplă a structurii, fiindcă putem șterge foarte simplu un
obiect din listă prin înlăturarea referinței sale sau putem adăuga un
obiect prin adăugarea unei referințe. În plus, o astfel de structură, dat
fiind faptul că este o structură obiectuală, va fi stocată în partea
dinamică a memoriei (heap) și nu vom fi limitați de dimensiunea
acestei structuri.
căutarea obiectelor,
Framework-ul Collection
List
Set
Map
Queue
Queue reprezintă o structură cunoscută de asemenea ca FIFO (First In
First Out). Primele elemente introduse într-o astfel de colecție sunt de
asemenea primele eliminate. Această structură este identică cu
structura unei cozi din viața reală.
După cum am menționat deja, Java are mai multe clase predefinite și
obiectivul nostru este să aflăm mai multe despre unele dintre aceste
clase de bază.
Lists
myList.add("my");
myList.add("name");
myList.add("is...");
Este evident faptul că putem adăuga elemente într-o listă creată astfel
fără ca mai întâi să fie nevoie să definim dimensiunea listei, ceea ce
înseamnă că o astfel de listă poate avea o dimensiune nelimitată. Cu
toate acestea, acest lucru are un preț, fiindcă această abordare este
mai lentă decât realizarea prin intermediul unui șir. Trebuie observat
că List reprezintă interfaţa, iar ArrayList reprezintă implementarea
acestei interfeţe. O altă clasă ce implementează interfaţa List este
LinkedList, în acest caz obiectul colecţie fiind creat astfel:
System.out.println(myList.get(1));
0: my
1: is...
0: my
1:
2: is...
for(int i=0;i<myList.size();i++)
System.out.println(myList.get(i));
O altă metodă de parcurgere a listei este printr-o buclp for each, astfel:
for(String s : myList)
System.out.println(s);
for(String s : myList)
System.out.println(s);
Listele pot accepta orice tip de date. Așadar, putem scrie în felul
următor:
for(Object s : myList)
System.out.println(s);
for(Object s : myList)
if(s.equals("name"))
System.out.println("Value exists");
System.out.println(myList.contains("name"));
Manual:
String[] arr = new String[myList.size()];
for(int i=0;i<myList.size();i++)
arr[i]=myList.get(i);
myList.clear();
Map
Mai există un tip comun de colecție în Java. Este vorba despre un șir de
perechi de chei și valori, respectiv un șir asociativ. Clasele care permit
utilizarea acestor colecții în Java moștenesc interfața Map. Într-o astfel
de structură, elementele șirului sunt identificate prin intermediul unei
anumite chei care le reprezintă. De exemplu, într-o colecție de
cetățeni, codul numeric personal este cheia, în timp ce datele (nume,
prenume, adresă) reprezintă valoarea pentru fiecare cetățean. Dacă
am dori să găsim un anumit cetățean, este suficient să-i cunoaștem
codul numeric personal, respectiv cheia. Cea mai des utilizată clasă a
acestui tip este HashMap.
System.out.println(hashMap.get("1234567890124"));
De exemplu: