Differences

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

Link to this comparison view

poo-ca-cd:laboratoare:colectii-tipuri-de-date-speciale-si-utilitare [2025/11/10 01:30]
florian_luis.micu [Obiective]
poo-ca-cd:laboratoare:colectii-tipuri-de-date-speciale-si-utilitare [2025/11/17 02:11] (current)
florian_luis.micu [Obiective]
Line 11: Line 11:
   ​   ​
 Aspectele urmărite sunt: Aspectele urmărite sunt:
-  * lucrul cu cele trei tipuri principale de colecții din Java: List, Set, Map +  ​* tipuri Wrapper peste primitive. 
-  * cunoașterea diferențelor dintre implementările colecțiilor (eficiență,​ sortare, ordonare etc) +  ​* lucrul cu cele trei tipuri principale de colecții din Java: List, Set, Queue, Map. 
-  * compararea elementelor unor colecții +  * cunoașterea diferențelor dintre implementările colecțiilor (eficiență,​ sortare, ordonare etc). 
-  * contractul equals-hashcode+  * compararea elementelor unor colecții. 
 +  * contractul equals-hashCode.
  
 Aspectele **bonus** urmărite sunt: Aspectele **bonus** urmărite sunt:
Line 21: Line 22:
   * folosirea tipurilor BigInteger și BigDecimal.   * folosirea tipurilor BigInteger și BigDecimal.
  
 +<note warning>
 +  * În acest laborator există mai multe secțiuni marcate **[Optional]**. Aceste secțiuni cuprind informații **bonus** care vă pot fi prezentate în **timpul laboratorului** sau pe care le puteți aprofunda **în afara** acestuia, ele nefiind necesare pentru laboratoarele viitoare sau pentru teme.
 +  * De asemenea, veți întâlni câteva secțiuni marcate **[Nice to know]**. Vă recomandăm ca acestea să aibă **prioritate** în parcurgerea secțiunilor de tip **[Optional]**,​ deoarece vă pot oferi informații bonus care să fie și foarte probabil utile pentru **teme** sau **laboratoare viitoare**.
 +</​note>​
 =====🌯 Wrappers pentru tipuri primitive===== =====🌯 Wrappers pentru tipuri primitive=====
  
Line 39: Line 44:
 ====Clase Wrapper==== ====Clase Wrapper====
  
-Pentru a permite utilizarea valorilor primitive în contexte ce necesită obiecte (de exemplu, în colecții despre care vom vorbi în următoarele laboratore), Java oferă clase wrapper **dedicate** fiecărui tip primitiv.+Pentru a permite utilizarea valorilor primitive în contexte ce necesită obiecte (de exemplu, în colecții despre care vom vorbi mai jos), Java oferă clase wrapper **dedicate** fiecărui tip primitiv.
  
 ^Tip primitiv^Clasă wrapper corespunzătoare^ ^Tip primitiv^Clasă wrapper corespunzătoare^
Line 53: Line 58:
  
 <note tip> <note tip>
-Wrapper-ele tipurilor primitive sunt **immutable**. Vom afla în următoarele laboratoare mai multe despre acest concept.+Wrapper-ele tipurilor primitive sunt **immutable**.
 </​note>​ </​note>​
  
Line 281: Line 286:
  
 Vom învăța mai multe despre acesta în laboratorul despre **genericitate**. Vom învăța mai multe despre acesta în laboratorul despre **genericitate**.
 +</​note>​
 +
 +<note tip>
 +Pe parcursul laboratorului veți vedea notații de tipul ''<​E>'',​ ''<​T>'',​ ''<​K,​ V>''​. Vom înțelege în următoarele laboratoare la ce se referă exact, însă pentru acest laborator este suficient să știți că sunt niște **notații** pentru a semnala că o colecție folosește un **tip omogen** (ex. ''​Collection<​E>''​ -> ''​Collection''​ poate folosi doar un tip omogen denumit ''​E''​ care poate fi un obiect).
 </​note>​ </​note>​
  
Line 780: Line 789:
 | ''​Math.toDegrees(a)''​ / ''​Math.toRadians(a)'' ​    | double ​                  | Conversie radian ↔ grade     | ''​Math.toDegrees(Math.PI)''​ → 180.0 | | ''​Math.toDegrees(a)''​ / ''​Math.toRadians(a)'' ​    | double ​                  | Conversie radian ↔ grade     | ''​Math.toDegrees(Math.PI)''​ → 180.0 |
 </​spoiler>​ </​spoiler>​
 +
 +<​html><​br></​html>​
  
 =====🐋 [Optional] BigInteger și BigDecimal===== =====🐋 [Optional] BigInteger și BigDecimal=====
Line 963: Line 974:
  
 =====Exerciţii===== =====Exerciţii=====
 +
 +====Task 1 (10p)====
 +
 1. În cadrul acestui exercițiu, veți implementa o clasă numită Student, care are patru membri: 1. În cadrul acestui exercițiu, veți implementa o clasă numită Student, care are patru membri:
     - name (String)     - name (String)
Line 976: Line 990:
  
 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. 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.
- 
-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]]. 
  
 =====Resurse și Linkuri utile===== =====Resurse și Linkuri utile=====
   * [[https://​www.tutorialspoint.com/​java/​java_collections.htm|Java Collections - Tutorial Point]]   * [[https://​www.tutorialspoint.com/​java/​java_collections.htm|Java Collections - Tutorial Point]]
 +  * [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​Math.html|Java Math]]
 +  * [[https://​docs.oracle.com/​en/​java/​javase/​25/​docs/​api/​java.base/​java/​math/​BigInteger.html|Java BigInteger]]
 +  * [[https://​docs.oracle.com/​en/​java/​javase/​25/​docs/​api/​java.base/​java/​math/​BigDecimal.html|Java BigDecimal]]
 +  * [[https://​www.baeldung.com/​java-8-date-time-intro|Date and Time API - Baeldung]]
  
poo-ca-cd/laboratoare/colectii-tipuri-de-date-speciale-si-utilitare.1762731020.txt.gz · Last modified: 2025/11/10 01:30 by florian_luis.micu
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