Zpo-2-lab
Ćwiczenie 1: Kolekcje w języku Java
Informacje wstępne
Ćwiczenie jest realizowany w języku Java w środowisku Eclipse 3.2. Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. Celem ćwiczenia jest praktyczne zapoznanie się z możliwościami biblioteki Java Collections a także wykorzystanie istniejącego projektu biblioteki do jej rozszerzenia. Ćwiczenie składa się z dwóch zadań.
Zadanie 1
W załączonym projekcie znajduje się szkielet implementacji klasy CollectionSet - zbioru, który przechowuje jedynie kolekcje. Klasa ta obecnie implementuje interfejs java.util.Set oraz definiuje wszystkie niezbędne metody jako delegacje do zawartego w tej klasie obiektu java.util.HashSet.
Różnica w zachowaniu tej klasy ma polegać na rozszerzonym iteratorze. Należy zaimplementować metodę Iterator iterator(), która będzie zwracała nie bezpośrednio kolekcje, które są jej elementami, ale elementy, które są w nich zawarte (korzystając z iteratorów tej klasy).
Podczas implementacji uwzględnij następujące ograniczenia:
- klasa CollectionSet jest implementacją interfejsu java.util.Set oraz spełnia ograniczenia dotyczące zbiorów (unikatowość elementów)
- niemożliwe jest dodanie do kolekcji elementu, który nie jest kolekcją; próba dodania takiego elementu powoduje zgłoszenie wyjątku java.lang.IllegalArgumentException
- metoda toString() zwraca napis będący opisem wszystkich zbiorów i ich elementów zawartych w obiekcie CollectionSet
- metoda iterator() ma działać w sposób opisany powyżej
- pozostałe metody w klasie CollectionSet mają być delegowane wewnętrznej instancji klasy java.util.HashSet
Zadanie 2
Zaprojektuj i zaimplementuj komparatory (implementacje interfejsu java.util.Comparator) pozwalające sortować listę obiektów klasy Student według następujących kryteriów:
- wg nazwiska, potem wg imienia - rosnąco
- wg roku urodzenia, potem wg nazwiska, potem wg imienia - rosnąco
Definicja klasy Student oraz przykładowe dane do posortowania znajdują się się w załączonym projekcie zpo-2-2-lab.zip dla środowiska Eclipse w pakiecie elearning.zpo.z2
Literatura
- Tutorial oferowany przez Sun Microsystems. http://java.sun.com/docs/books/tutorial/collections/index.html
- D. Becker, "Get started with Java Collections". http://www.javaworld.com/javaworld/jw-11-1998/jw-11-collections.htmls
- JGuru FAQ. http://www.jguru.com/faq/Collections