This is an old revision of the document!
Să se definească o clasă generică ArrayMap pentru un dicționar realizat ca o colecție de obiecte ArrayMapEntry (colecția va fi obiect de tip ArrayList). Clasa ArrayMapEntry va implementa interfața Map.Entry și va avea următoarele metode:
K getKey(); V getValue(); V setValue(V value); String toString(); boolean equals(Object o); int hashCode();
Clasa ArrayMap va extinde clasa AbstractMap și va defini metodele:
Set entrySet(); int size(); V put(K key, V value);
Pentru testare, se va folosi clasa Task1, pusă la dispoziție în arhiva laboratorului.
Definiți clasa Catalog care moștenește clasa TreeSet, specificând tipul Student pentru elementele din colecție. Clasa Student este definită în interiorul clasei Catalog, implementează interfața Comparable și conține următoarele câmpuri: un String name, pentru reținerea numelui studentului, un double media, pentru medie, și un int clazz pentru reținerea numărului grupei din care face parte studentul. Compararea a doi studenți se realizează în funcție de medie (crescător), iar dacă acestea sunt egale, se realizează o sortare alfabetică.
Clasa trebuie să pună la dispoziție metode pentru următoarele operații: adăugarea unui student, căutarea unui student după nume (va returna null dacă nu există un student cu numele indicat în colecție), ștergerea unui student din catalog (primește ca parametru numele studentului), ordonarea alfabetică a studenților dintr-o grupă, primită ca parametru.
Pentru testare, se va completa instanțierea obiectului catalog2 din interiorul clasei Task2, pusă la dispoziție în arhiva laboratorului, astfel încât acest catalog să fie sortat descrescător după medie și la egalitate crescător după nume.
//Constructori public Catalog (Comparator comparator ) ; public Catalog ( ) ; public void addStudent(String name, float media, int clazz); public Student getStudent ( String name) ; public void removeStudent ( String name) ; public Catalog byClass (int clazz ) ; // Contine o clasa anonima de tip Comparator ce va fi folosita la crearea Catalog-ului returnat
Definiți clasa generică LinkedList care va implementa interfața Iterable și va modela o listă liniară simplu înlănțuită.
În clasa LinkedList se vor defini:
//Insereaza un nod la inceputul listei public void addFirst(T data); //Insereaza un nod la sfarsitul listei public void add(T data); //Returneaza primul nod din lista public T getNode(); //Returneaza un obiect de tip ListIterator public Iterator<T> iterator();
Pentru testare, se va folosi clasa Task3, pusă la dispoziție în arhiva laboratorului.