Differences

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

Link to this comparison view

poo:laboratoare:09 [2017/11/23 12:54]
mihai.nan
poo:laboratoare:09 [2023/12/09 11:43] (current)
carmen.odubasteanu
Line 1: Line 1:
-===== Laboratorul ​09. =====+===== Laboratorul ​12. =====
  
 === Problema 1 === === Problema 1 ===
Line 27: Line 27:
  
 === Problema 2 === === Problema 2 ===
-Să se definească o clasă ​abstractă ​**//​ArrayMap//​**,​ pentru un dicționar realizat din doi vectori (un vector de chei și un vector de valori asociate, obiecte din clasa **//​Vector//​**),​ care să poată înlocui o clasă **//​HashMap//​** sau **//​TreeMap//​**. Astfel, această clasă va extinde clasa **//​AbstractMap//​**,​ suprascriind următoarele metode:+Să se definească o clasă ​**__generica__** ​**//​ArrayMap//​**,​ pentru un dicționar realizat din doi vectori (un vector de chei și un vector de valori asociate, obiecte din clasa **//​Vector//​**),​ care să poată înlocui o clasă **//​HashMap//​** sau **//​TreeMap//​**. Astfel, această clasă va extinde clasa **//​AbstractMap//​**,​ suprascriind următoarele metode:
  
 <code java> <code java>
 public String toString(); public String toString();
 public V put(K, V); public V put(K, V);
-public V get(Object);​+public V get(Object );
 public Set<​K>​ keySet(); public Set<​K>​ keySet();
 public Collection<​V>​ values(); public Collection<​V>​ values();
-public Set<​Map.Entry<​K,​ V>> entrySet();+public Set<​Map.Entry<​K,​ V>> entrySet(); ​// atentie! Se va defini o clasa interna pentru o intrare in dictionar - **//​Map.Entry//​**
 </​code>​ </​code>​
-Afișați dicționarul folosind un **//​Iterator//​** pentru a parcurge mulțimea ​cheilor ​generată de metoda **//keySet//**.+Afișați dicționarul ​folosind System.out.println(dictionar) si apoi folosind un **//​Iterator//​** pentru a parcurge mulțimea ​intrarilor ​generată de metoda **//entrySet//**.
  
 === Problema 3 === === Problema 3 ===
-Pornind de la clasa abstractă **//​AMatrix//​**,​ pusă la dispoziție în arhiva laboratorului,​ implementați clasa **//​IntegerMatrix//​** care moștenește această clasă abstractă și modelează un tablou bidimensional cu numere întregi. Clasa **//​AMatrix//​** moștenește clasa **//​ArrayList//​**. Astfel, matricea propriu-zisă este un obiect de tip **//​ArrayList//​** care conține elemente de tip **//​ArrayList//​**. Clasa va conține metode pentru următoarele operații: afișarea matricei ​și adunarea a două matrice.+Pornind de la clasa abstractă **//​AMatrix//​**,​ pusă la dispoziție în arhiva laboratorului,​ implementați clasa **//​IntegerMatrix//​** care moștenește această clasă abstractă și modelează un tablou bidimensional cu numere întregi. Clasa **//​AMatrix//​** moștenește clasa **//​ArrayList//​**. Astfel, matricea propriu-zisă este un obiect de tip **//​ArrayList//​** care conține elemente de tip **//​ArrayList//​**. Clasa va conține metode pentru următoarele operații: afișarea matriceiadunarea a două matrice, și metoda sum pentru a aduna două elemente!.
  
 <code java> <code java>
 //afisare //afisare
 public String toString(); public String toString();
 +//sum
 +public Integer sum(Integer obj1, Integer obj2) 
 //adunare //adunare
 public AMatrix addition(AMatrix m); public AMatrix addition(AMatrix m);
 </​code>​ </​code>​
  
-<note important>​Folosiți iteratori pentru parcurgerea colecțiilor ​și metoda  +<note important>​Folosiți iteratori pentru parcurgerea colecțiilor ​sau bucle for each! </​note>​
-sum pentru a aduna două elemente!</​note>​+
  
 === Problema 4 === === Problema 4 ===
-Definiți clasa **//GenericList//** care să implementeze interfața, pusă la dispoziție în arhiva laboratorului,​ **//​GenericInterface//​**. Această interfață conține operații care prelucrează o listă, cu elemente de tip **//​Comparable//​**. Metoda **//​removeDuplicates//​** primește ca parametru un obiect de tip **//​ArrayList//​** și transformă lista în mulțime, eliminând duplicatele. Metoda **//max//** are ca parametru tot un **//​ArrayList//​** și returnează elementul maximal din listă. Ultima metodă conținută de interfață,​ **//​binarySearch//​**,​ este folosită pentru a determina poziția unei valori într-o listă, uzitând pentru aceasta algoritmul de căutare binară, detaliat în blocul de cod de mai jos.+Definiți clasa **//GenericListMethods//** care să implementeze interfața, pusă la dispoziție în arhiva laboratorului,​ **//​GenericInterface//​**. Această interfață conține operații care prelucrează o listă, cu elemente de tip **//​Comparable//​**. Metoda **//​removeDuplicates//​** primește ca parametru un obiect de tip **//​ArrayList//​** și transformă lista într-on ​mulțime, eliminând duplicatele. ​ 
 +Metoda **//max//** are ca parametru tot un **//​ArrayList//​** și returnează elementul maximal din listă. ​ 
 +Ultima metodă conținută de interfață,​ **//​binarySearch//​**,​ este folosită pentru a determina poziția unei valori într-o listă ​ordonata, uzitând pentru aceasta algoritmul de căutare binară, detaliat în blocul de cod de mai jos.
  
 <code c> <code c>
Line 71: Line 74:
 } }
 </​code>​ </​code>​
-{{:​poo:​laboratoare:​lab9.zip|Arhivă laborator}}+{{:​poo:​laboratoare:​arhiva9.zip|Arhivă laborator}}
poo/laboratoare/09.1511434495.txt.gz · Last modified: 2017/11/23 12:54 by mihai.nan
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