Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:colectii [2024/12/08 19:09]
alexandru.chirac
poo-ca-cd:laboratoare:colectii [2024/12/10 20:41] (current)
alexandru.chirac [Interfaţa Set]
Line 232: Line 232:
 | | **HashSet** | **LinkedHashSet** | **TreeSet** | | | **HashSet** | **LinkedHashSet** | **TreeSet** |
 | **Funcționarea internă** | Elementele se memorează într-o tabelă de dispersie | Elementele sunt păstrate cu ajutorul unei liste înlănțuite | Elementele se memorează într-un arbore de căutare | | **Funcționarea internă** | Elementele se memorează într-o tabelă de dispersie | Elementele sunt păstrate cu ajutorul unei liste înlănțuite | Elementele se memorează într-un arbore de căutare |
-| **Utilizarea** | Se folosește când dorești să stochezi o listă de perechi cheie-valoare ​fără a fi interesat de ordinea acestei memorări | Se folosește atunci când se dorește conservarea ordinii de la inserare | Se folosește când se dorește păstrarea elementelor într-o ordine stabilită cu ajutorul unui Comparator |+| **Utilizarea** | Se folosește când dorești să stochezi o listă de elemente ​fără a fi interesat de ordinea acestei memorări | Se folosește atunci când se dorește conservarea ordinii de la inserare | Se folosește când se dorește păstrarea elementelor într-o ordine stabilită cu ajutorul unui Comparator |
 | **Ordinea** | Ordinea elementelor este total aleatoare | Se conservă ordinea în care au fost introduse elementele | Se folosește ordinea stabilită cu ajutorul unui Comparator. Daca acesta nu este menționat, implicit elementele vor fi sortate crescător | | **Ordinea** | Ordinea elementelor este total aleatoare | Se conservă ordinea în care au fost introduse elementele | Se folosește ordinea stabilită cu ajutorul unui Comparator. Daca acesta nu este menționat, implicit elementele vor fi sortate crescător |
 | **Complexitatea operațiilor**| O(1) pentru toate operațiile de bază (inserare, ștergere, căutare) | O(1) pentru toate operațiile de bază (inserare, ștergere, căutare) | Deoarece este folosit un arbore în spate, operațiile se execută in O(log(N)) | | **Complexitatea operațiilor**| O(1) pentru toate operațiile de bază (inserare, ștergere, căutare) | O(1) pentru toate operațiile de bază (inserare, ștergere, căutare) | Deoarece este folosit un arbore în spate, operațiile se execută in O(log(N)) |
Line 349: Line 349:
 După implementarea clasei, sortați elementele listei "​students"​ din metoda main folosind metoda Collections.sort(). După implementarea clasei, sortați elementele listei "​students"​ din metoda main folosind metoda Collections.sort().
  
-2. Sortați lista "​copyStudents" ​din metoda main folosindde această dată, o expresie lambda.+2. Adăugați lista "​copyStudents" ​într-un PriorityQueue (cu ajutorul metodei Collection.addAll)care folosește un Comparator (utilizați constructorul PriorityQueue) sau o funcție anonimă. Elementele vor fi sortate crescător după id.
  
-3. Adăugați lista "anotherCopyStudents" ​într-un PriorityQueue (cu ajutorul metodei Collection.addAll)care folosește un Comparator (utilizați constructorul PriorityQueue) sau o funcție anonimă. Elementele vor fi sortate crescător după id.+3. Suprascrieți metodele equals și hashCode în clasa Student (puteți folosi generatorul de cod din IntelliJ). După aceasta, adăugați ​în lista asociată studentilor din "studentMap" ​patru materii aleatoriiPentru a obține materiile aleatoriiurmăriți indicațiile din codul din funcția main.
  
-4. Suprascrieți metodele equals și hashCode în clasa Student (puteți folosi generatorul de cod din IntelliJ). După aceasta, adăugați în lista asociată studentilor din "​studentMap"​ patru materii aleatorii. Pentru a obține materiile aleatorii, urmăriți indicațiile din codul din funcția main. +4. Extindeți clasa LinkedHashSet<​Integer>​ cu o clasă în care se vor putea adăuga doar numere pare. Metoda add va fi suprascrisă astfel încât să nu permită adăugarea de numere impare în colecție. Efectuați aceeași operațiune și pentru clasele TreeSet și HashSet. Observați diferențele privind ordinea de inserare a elementelor între cele trei clase menționate.
- +
-5. Extindeți clasa LinkedHashSet<​Integer>​ cu o clasă în care se vor putea adăuga doar numere pare. Metoda add va fi suprascrisă astfel încât să nu permită adăugarea de numere impare în colecție. Efectuați aceeași operațiune și pentru clasele TreeSet și HashSet. Observați diferențele privind ordinea de inserare a elementelor între cele trei clase menționate.+
  
 Scheletul il puteți gasi pe [[https://​github.com/​oop-pub/​oop-labs/​blob/​master/​src/​lab8/​Main.java|github]]. Soluția trebuie încărcată pe [[https://​code.devmind.ro|devmind]]. Scheletul il puteți gasi pe [[https://​github.com/​oop-pub/​oop-labs/​blob/​master/​src/​lab8/​Main.java|github]]. Soluția trebuie încărcată pe [[https://​code.devmind.ro|devmind]].
poo-ca-cd/laboratoare/colectii.1733677765.txt.gz · Last modified: 2024/12/08 19:09 by alexandru.chirac
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0