This shows you the differences between two versions of the page.
|
poo:laboratoare:07 [2025/11/17 22:16] 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 131: | Line 131: | ||
| <note tip> | <note tip> | ||
| - | Pentru fișierul de intrare din arhivă, capacitate 3, output-ul trebuie să fie: | + | Pentru fișierul de intrare din arhivă (capacitate 3, loadfactor 0.75), output-ul trebuie să fie: |
| <code java> | <code java> | ||