Differences

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

Link to this comparison view

poo:laboratoare:07 [2025/11/17 22:14]
george.tudor1906 [Problema 6]
poo:laboratoare:07 [2025/11/20 08:01] (current)
george.tudor1906 [Problema 4]
Line 1: Line 1:
 ===== Laboratorul 07. ===== ===== Laboratorul 07. =====
-Arhiva laborator: {{:​poo:​laboratoare:​arhiva7.zip| Arhiva}}+Arhiva laborator: {{:​poo:​laboratoare:​arhiva_lab7.zip| Arhiva}}
  
  
Line 35: Line 35:
 <note tip> <note tip>
 <code java> <code java>
-Comparator comparator () ; //​comparator folosit (null pentru comparatia naturală) ​+Comparator comparator();​ //​comparator folosit (null pentru comparatia naturală) ​
 boolean add(Object o); //adaugă un elemnt în mulțime dacă nu există deja și sortează mulțimea boolean add(Object o); //adaugă un elemnt în mulțime dacă nu există deja și sortează mulțimea
 Object first(); //primul obiect din mulțime Object first(); //primul obiect din mulțime
Line 53: Line 53:
  
 ==== Problema 4 ==== ==== Problema 4 ====
-Realizați un program care citește un fișier text și afișează, pentru **fiecare cuvânt distinct**, numerele liniilor în care apare și, la final, numărul total de apariții ale acelui cuvânt. Se va utiliza un **dicționar ordonat alfabetic** după cuvânt, implementat ca **TreeMap<​String,​ LinkedList<​Integer>>​**:​ cheia este cuvântul, iar valoarea este lista numerelor de linie pentru **fiecare apariție** (dacă același cuvânt apare de mai multe ori pe aceeași linie, numărul liniei se repetă în listă).+Realizați un program care citește un fișier text și afișează, pentru **fiecare cuvânt distinct**, numerele liniilor în care apare și, la final, numărul total de apariții ale acelui cuvânt. Se va utiliza un **dicționar ordonat alfabetic** după cuvânt, implementat ca **TreeMap<​String,​ LinkedList<​Integer>​ >**: cheia este cuvântul, iar valoarea este lista numerelor de linie pentru **fiecare apariție** (dacă același cuvânt apare de mai multe ori pe aceeași linie, numărul liniei se repetă în listă).
    
 Pentru afișare se va itera cu un **Iterator** peste mulțimea intrărilor dicționarului obținută prin **Map.entrySet()**. Pentru fiecare intrare, se va tipări **cuvântul** pe o linie separată urmat, pe liniile următoare, de lista numerelor de linie (în ordinea colectării),​ iar la final "​Total:​ N", unde N este dimensiunea listei aferente cuvântului. Fiecare cuvânt începe pe o linie nouă. Pentru afișare se va itera cu un **Iterator** peste mulțimea intrărilor dicționarului obținută prin **Map.entrySet()**. Pentru fiecare intrare, se va tipări **cuvântul** pe o linie separată urmat, pe liniile următoare, de lista numerelor de linie (în ordinea colectării),​ iar la final "​Total:​ N", unde N este dimensiunea listei aferente cuvântului. Fiecare cuvânt începe pe o linie nouă.
Line 130: Line 130:
 În metoda main se validează argumentele,​ se apelează runOps(...),​ se afișează linia ---, apoi printCache(...). În metoda main se validează argumentele,​ se apelează runOps(...),​ se afișează linia ---, apoi printCache(...).
  
-<​note>​+<​note ​tip> 
 +Pentru fișierul de intrare din arhivă (capacitate 3, loadfactor 0.75), output-ul trebuie să fie: 
 + 
 +<code java> 
 +
 +NULL 
 +
 +NULL 
 +30 
 +NULL 
 +
 +
 +--- 
 +C=30 
 +E=5 
 +F=6 
 +</​code>​ 
 + 
 +Explicația se găsește la fiecare pas în fișierul de intrare. 
 +</​note>​ 
  
-Pentru fi 
poo/laboratoare/07.1763410452.txt.gz · Last modified: 2025/11/17 22:14 by george.tudor1906
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