This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:colectii [2019/11/17 16:11] Adriana Draghici [Exerciţii] |
laboratoare:colectii [2019/11/30 13:44] (current) Florin Mihalache [Resurse] |
||
---|---|---|---|
Line 249: | Line 249: | ||
- (**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). | - (**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 [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html|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}} | ||
- | * {{:laboratoare:colectii:sol-lab8-2019.zip|Soluție (disponibilă începând cu 30.11)}} | + | * {{:laboratoare:colectii:sol-lab8-2019.zip|Soluție}} |
- | * <html><a class="media mediafile mf_pdf" href="/poo/laboratoare/colectii?do=export_pdf">PDF laborator</a></html> | + | * [[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]] |