Sunteți pe pagina 1din 2

Programare Orientata pe Obiecte

L A B O R A T O R 7a
Clase incluse
1. Folosind colectii generice sa se defineasca o clasa "SortedArray",
derivata din "ArrayList" pentru vectori ordonati. Constructori:
public SortedArray (Comparator<E> comp)
public SortedArray ()
Se va redefini metoda "indexOf" pentru a folosi "Collections.binarySearch"
si metoda "add" pentru a folosi "Collections.sort".
Clasa "SortedArray" va contine o clasa inclusa comparator pentru ordonare
in ordine naturala (cu metoda "compareTo"), folosita in cazul constructorului
fara argumente (cand nu se primeste un comparator la construirea vectorului).
Se vor face toate modificarile necesare pentru a elimina avertismentele
de tip "unchecked" de la compilare.
Program pentru verificare:
public static void main (String arg[]) {
List<String> lst1 = new SortedArray<String> ();
List<String> lst2 = new SortedArray<String> (new DComp<String>());
String t[]={ "unu","doi","trei","patru","cinci"};
for (int i=0;i<t.length;i++) {
lst1.add( t[i]);
lst2.add( t[i]);
}
System.out.println (lst1); // vector ordonat crescator
System.out.println (lst2); // vector ordonat descrescator
}
}
Pentru a vedea ce operatii produc avertismentele "uncheked" se editeaza
linia de compilare folosita de JCreator astfel:
Configure->Options->JDK Tools->Compiler->Default->Edit->Parameters->
-> se adauga "-Xlint" la sfarsitul liniei "parameters" .
2. Sa se defineasca o clasa "ArrayTable" pentru operatii cu matrice de tip
Object[][]. Constructori:
ArrayTable (int nl, int nc); // nl=nr linii, nc=nr coloane
ArrayTable (Object a[][]);
// copiere matrice a in obiectul construit
Metode publice:
String toString(); // sir cu fiecare rand din matrice pe o linie
void sort(int k); // ordonare dupa valorile din coloana k cu Arrays.sort
Clasa comparator va fi definita ca o clasa inclusa cu nume si apoi anonima.
Metoda "toString" va folosi metoda statica Arrays.toString().
Pentru verificare se va folosi programul urmator:
public static void main (String av[]) {
String a[][] = {{"3","1","6"},{"1","5","2"},{"7","3","4"}};
ArrayTable t= new ArrayTable (a);
System.out.println(t); // afisare matrice
for (int i=0;i<3;i++){
t.sort(i); // ordonare t dupa valorile din coloana k
System.out.println(t); // afisare matrice ordonata
}
}
3. Sa se defineasca o metoda statica de trecere de la un vector la o lista:
public static List toList (Object [] a);

Metoda va contine o clasa inclusa "AList" care extinde pe AbstractList si


contine un vector intrinsec de obiecte "Object" cu metodele : size, get(int),
set(int,Object),remove(int),indexOf(Object). Constructor cu argument Object[].
Program pentru verificare:
public static void main ( String av[]) {
String a[]={"unu","doi","trei"};
System.out.println ( toList(a));
}
Sa se rescrie apoi metoda "toList" cu clasa inclusa anonima in loc de "AList".

S-ar putea să vă placă și