User Tools

Site Tools


Problem constructing authldap
laboratoare:colectii
Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:colectii [2019/11/16 20:23]
Florin Mihalache [Exerciţii]
laboratoare:colectii [2019/11/30 13:44] (current)
Florin Mihalache [Resurse]
Line 245: Line 245:
 ==Exerciţii== ==Exerciţii==
   - (**2p**) În scheletul de laborator, aveți un fișier cu o clasă (Student), care are trei membri: name (String), surname (String), id (long) și averageGrade (double) - media unui student. ​   - (**2p**) În scheletul de laborator, aveți un fișier cu o clasă (Student), care are trei membri: name (String), surname (String), id (long) și averageGrade (double) - media unui student. ​
-       * Clasa Student va implementa interfața Comparable<​Student>,​ folosită la sortări. În metoda compareTo, studenții vor fi comparați mai întâi după medie, apoi după numele de familie, apoi dupa prenume (adică dacă doi studenți au aceeași medie, ei vor fi comparați după numele de familie și dacă au același nume de familie, atunci vor fi comparați după prenume). ​E de recomandat ​să suprascrieți metoda toString, pentru a putea afișa datele despre un student. +       * Clasa Student va implementa interfața ​[[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​lang/​Comparable.html|Comparable]]<​Student>,​ folosită la sortări, implementând metoda [[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​lang/​Comparable.html#​compareTo(T)|compareTo]]. În metoda compareTo, studenții vor fi comparați mai întâi după medie, apoi după numele de familie, apoi dupa prenume (adică dacă doi studenți au aceeași medie, ei vor fi comparați după numele de familie și dacă au același nume de familie, atunci vor fi comparați după prenume). ​Recomandăm ​să suprascrieți metoda ​//toString//, pentru a putea afișa datele despre un student. 
-  - (**1p**) Creați 5 obiecte de tip Student și adăugați-le într-un ArrayList, pe care să îl sortați (hint: Collections.sort),​ apoi afisați conținutul din ArrayList. +  - (**1p**) Creați 5 obiecte de tip Student și adăugați-le într-un ArrayList, pe care să îl sortați (hint: ​[[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​util/​Collections.html#​sort(java.util.List)|Collections.sort]]), apoi afisați conținutul din ArrayList. 
-   - (**2p**) Adăugați ArrayList-ul definit la subpunctul anterior într-un PriorityQueue (hint: addAll), care folosește un Comparator, unde elementele sunt sortate crescător după id (aici puteti folosi Long.compare ca să comparați două numere de tip long). +   - (**2p**) Adăugați ArrayList-ul definit la subpunctul anterior într-un PriorityQueue (hint: ​[[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​util/​Collection.html#​addAll(java.util.Collection)|Collection.addAll]]), care folosește un Comparator, unde elementele sunt sortate crescător după id (aici puteti folosi Long.compare ca să comparați două numere de tip long). 
-  - (**1p**) Suprascrieți metodele equals și hashCode în clasa Student (hint: puteți folosi generatorul de cod din IntelliJ). +  - (**1p**) Suprascrieți metodele ​//equals// și //hashCode// în clasa Student (hint: puteți folosi generatorul de cod din IntelliJ). 
-  - (**2p**) Folosiți un HashMap<​Student,​ LinkedList<​String>>,​ în care se vor adăuga perechi de tipul (Student, lista de materii pe care le are studentul respectiv), iar apoi afisați conținutul colecției (hint: Map.Entry și entrySet()). +  - (**2p**) Folosiți un //HashMap<​Student,​ LinkedList<​String>>​//, în care se vor adăuga perechi de tipul (Student, lista de materii pe care le are studentul respectiv), iar apoi afisați conținutul colecției (hint: Map.Entry și entrySet()). 
-  - (**2p**) ​Să se extindă ​clasa LinkedHashSet<​Integer>,​ în care se vor putea adăuga doar numere pare. Vor fi suprascrise metodele add și addAll, în așa fel încât să nu fie permise adăugarea de numere impare în colecție. Pentru testare, adăugați numere pare și impare, iar după aceea iterați prin colecție, folosind Iterator (tipizat cu Integer), afișând elementele din colecție. Inlocuiți LinkedHashSet cu HashSet - ce observați cu privire la ordinea de inserare a elementelor?​ Dar dacă ați înlocui cu TreeSet?+  - (**2p**) ​Extindeți ​clasa //LinkedHashSet<​Integer>​//cu o clasă ​în care se vor putea adăuga doar numere pare. Vor fi suprascrise metodele ​//add// și //addAll//, în așa fel încât să nu fie permise adăugarea de numere impare în colecție. Pentru testare, adăugați numere pare și impare, iar după aceea iterați prin colecție, folosind ​[[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​util/​Iterator.html|Iterator]] ​(tipizat cu Integer) ​sau folosind forEach, afișând elementele din colecție. Inlocuiți LinkedHashSet cu HashSet - ce observați cu privire la ordinea de inserare a elementelor?​ Dar dacă ați înlocui cu TreeSet?
 == Resurse == == Resurse ==
  
 * {{:​laboratoare:​colectii:​schelet-lab8-2019.zip|Schelet}} * {{:​laboratoare:​colectii:​schelet-lab8-2019.zip|Schelet}}
-<​html><​a class="media mediafile mf_pdf"​ href="/poo/laboratoare/colectii?​do=export_pdf">​PDF ​laborator</a></html>+{{:​laboratoare:​colectii:​sol-lab8-2019.zip|Soluție}} 
 +* [[laboratoare:​old-exercises#​colectii|Exerciții din alți ani]] 
 + 
 +== Linkuri utile == 
 +* [[https://www.baeldung.com/java-8-streams|Streams]],​ introduse din Java 8, pot fi folosite și pentru a aplica operații pe colecții. Nu le folosim momentan la laborator ​însă le puteți utiliza la teme: 
 +   * [[https://www.geeksforgeeks.org/​stream-in-java/​|Java streams]] 
 +   * [[https://​www.geeksforgeeks.org/​stream-filter-java-examples/​| Filter streams examples]]
laboratoare/colectii.1573928620.txt.gz · Last modified: 2019/11/16 20:23 by Florin Mihalache