Napisać klasę reprezentującą Osobę która będzie posiadała pola wiek, nazwisko, czykobieta, ileOsob (pole mówiące ile mamy aktualnie stworzonych obiektów Osoba) Zadanie 0 Napisać klasę testową, która będzie miała metody pozwalające na dodanie nowego obiektu, usunięcie i edycję obiektu z kolekcji typu List. Wyświetlić informacje z kolekcji wykorzystując pętlę for oraz Iterator. Dodatkowo proszę skorzystać z nowej możliwości J2SE 1.5 - szablony generics Sprawdzić w dokumentacji różnice miedzy najpopularniejszymi implementacjami list czyli klasami ArrayList, LinkedList, Vector Zadanie 1 Napisz program który na danej liście L liczb całkowitych znajduje element najmniejszy i element największy i tworzy nowe listy Lmin i Lmax zawierające odpowiednio wszystkie elementy najmniejsze i wszystkie elementy największe obecne na L. Zakładamy że na liście mogą występować powtarzające się elementy. Zadanie 2 Napisać własną klasę SortList implementującą interfejs List. Zaimplementować wszystkie wymagane metody. Zasada działania ma być identyczna jak dla klasy ArrayList. Zmodyfikować metody wstawiającą (add) tak by uwzględniała automatycznie posortowanie kolekcji. Zadanie 3 Zdefiniuj klasę StosLiczb opisującą strukturę danych typu LIFO(last-in,first-out) do przechowywania liczb całkowitych a w niej funkcje : create() - utwórz pusty stos push() – włóż element na stos pop() - pobierz element ze stosu peek() - obejrzyj element z wierzchołka bez pobierania isEmpty() – czy stos jest pusty isFull() - czy stos jest pełny show() – wyświetla zawartość Strukturę danych zrealizuj przy pomocy tablicy i przetestuj klasę StosLiczb. W tej implementacji klasa StosLiczb powinna zawierać 3 pola: int[] tab; // tablica elementów int top; // indeks wierzchołka stosu int size; // rozmiar stosu Uporządkuj elementy w kolejce przechowującej liczby całkowite używając : a) dwóch pomocniczych kolejek i kilku zmiennych b) jednej pomocniczej kolejki i kilku zmiennych Zadanie 4 Napisz program który wstawia do zbioru HashSet 50 liczb w nieuporządkowanej kolejności. Napisz następnie metodę sortującą ten zbiór i wyświetlającą posortowany zbiór Zadanie 5 Utwórz i przetestuj klasę MySet opisującą zbiór i podstawowe operacje na zbiorach: - sumę - różnicę - część wspólną - zawieranie się zbiorów - należenie elementu do zbioru Zakładamy że elementy zbioru nie mogą się powtarzać. Wykorzystaj klasy TreeSet lub HashSet. {A,A,A,B,B,C} + {A,A,C} ={ A,A,A,A,A,B,B,C,C} {A,A,A,B,B,C} - {A,A,C} ={ A,B,B} Zadania z wykładu Zadanie 1. Tworzenie i przetwarzanie prostych kolekcji Napisać program, który tworzy różne kolekcje listowe (typu List) i zbiorowe (typu Set) napisów i liczb, podanych w dwóch tablicach o równych rozmiarach. Napisy i liczby (ściślej: referencje do nich) mają być dodawane do każdej z kolekcji na przemian (najpierw napis, później liczba). Na kolekcjach przeprowadzić następujące operacje: skonkatenować wszystkie łańcuchy znakowe, zsumować wszystkie liczby. Wyprowadzić wyniki tych operacji dla każdej z kolekcji, poprzedzone informacją o tym jaka to kolekcja i jakie elementy zawiera. Zapewnić minimum kodowania (operacje dodawania do konkretnej kolekcji oraz jej przetwarzania wyodrębnić w oddzielnych metodach). Przykład: dwie tablice napisów i liczb: String[] s = { "ala", "kot", "pies", "zebra", "ala" }; int[] num = { 1, 2, 7, 9, 2 }; przedstawiono w programie w postaci dwóch konkretnych kolekcji: ArrayList i HashSet. Wynik działania programu: Kolekcja java.util.ArrayList [ala, 1, kot, 2, pies, 7, zebra, 9, ala, 2] Konkatenacja: ala kot pies zebra ala Suma: 21 Kolekcja java.util.HashSet [9, pies, zebra, 7, ala, kot, 2, 1] Konkatenacja: pies zebra ala kot Suma: 19 Pomoc: -(material spoza wykladu) nazwę klasy obiektu obj można uzyskać poprzez odwołanie obj.getClass().getName() [ zwraca napis = nazwa klasy] Pytania i dodatkowe zadania: dlaczego utworzone kolekcje HashSet i ArrayList różnią się między sobą? jak najłatwiej zmienić implementację listy z ArrayList na LinkedList? Pokazać kod. co się stanie jeśli w tym programie za pomocą takich samych środków jak w przypadku list i HashSet będziemy próbować tworzyć kolekcję TreeSet? Dlaczego ? co trzeba zrobić, żeby utworzenie kolekcji TreeSet powiodło się i jakie będzie ona miała własności? A propos ostatniego pytania musimy uzyskać wydruk podobny do następującego: Kolekcja java.util.ArrayList [ala, 1, kot, 2, pies, 7, zebra, 9, ala, 2] Konkatenacja: ala kot pies zebra ala Suma: 21 Kolekcja java.util.HashSet [9, pies, zebra, 7, ala, kot, 2, 1] Konkatenacja: pies zebra ala kot Suma: 19 Kolekcja java.util.TreeSet [1, 2, 7, 9, ala, kot, pies, zebra] Konkatenacja: ala kot pies zebra Suma: 19 Zadanie 2. Algorytmy i mapy Napisac program, ktory z pliku tekstowego (podanego jako argument) wczytuje dane o pracownikach (imie, nazwisko, rok urodzenia, zarobki), a nastepnie wyprowadza informacje o nich: posortowane wg nazwisk i imion posortowane wg zarobkow na zyczenie - po podaniu w dialogu wejsciowym nazwiska i imienia - nazwisko i imie oraz zarobki dla danego pracownika. Uwagi: uzyskiwanie informacji o konkretnym pracowniku (po podaniu jego nazwiska i imienia) zapewnić poprzez odpowiednią implementację mapy, zabezpieczyć się przed powtarzającymi się nazwisko+imię (w mapie), w standardowej wersji programu (to wystarczy) wszystkie informacje wyprowadzamy na konsole, w rozbudowanej wersji programu posortowane informacje kierować do pliku wyjściowego, a zapytania o konkretnych pracownikach przedstawiać jako komunikaty typu messageDialog w standardowej wersji programu przy powtórzeniach nazwisko+imie przerywac program, w rozbudowanej wersji zapewnić mechanizm sensownej obsługi powtórzeń. Pomoc: potrzebna odrębna klasa reprezentująca atrybuty pracowników (imie, nazwisko, rok urodzenia, zarobek), ich uzyskiwanie i pokazywanie oraz naturalny porządek sortowania wg : nazwisko+imię tylko listy dają się sortować jednoczesne przechowywanie referencji do obiektów na liście i w mapie nie jest niczym złym naturalny porządek można łamać za pomocą Comparatora Przykład: Wydruk z programu po wczytaniu danych z przykładowego pliku i podaniu w dialogu wejściowym : Sonia Ala Zwierz Staefen (błąd!) Zwierz Stefan (poprawienie błędu) Wydruk; W porzadku alfabetycznym: Albanski Albin 1978 2300 Jankowski Jan 1975 1500 Jemioluszka Anna 1945 4500 Kowalski Jan 1980 2000 Sonia Ala 1957 3000 Zwierz Stefan 1968 2500 --------------------------------------Wedlug zarobkow: Jankowski Jan 1975 1500 Kowalski Jan 1980 2000 Albanski Albin 1978 2300 Zwierz Stefan 1968 2500 Sonia Ala 1957 3000 Jemioluszka Anna 1945 4500 --------------------------------------Informacje w trybie interaktywnym (po podaniu nazwiska i imienia): Sonia Ala 3000 Not such worker: Zwierz Staefan Zwierz Stefan 2500