Tydzień 12: kolekcje
Ćwiczenia
- Zaimplementuj prostą książkę telefoniczną w telefonie komórkowym. Książka powinna zawierać następujące operacje:
- wyszukiwanie numeru telefonu podanej osoby,
- zwracanie uporządkowanej alfabetycznie listy osób, których numery telefonu mamy,
- rozpoznawanie numeru telefonu (identyfikacja, kto do nas dzwoni),
- dodawanie osoby razem z numerem telefonu,
- usuwanie osoby.
Dla uproszczenia można założyć, że każda osoba ma tylko jeden numer telefonu.
- Anagramy to słowa, które składają się z tych samych liter,
ale w różnej kolejności. Napisz program, który dla danej listy słów
wypisze wszystkie grupy anagramów pojawiające się na tej liście.
- Napisz program, który dla danego pliku tekstowego wypisze nastepujące informacje:
- z ilu słów składa się plik,
- słowo na pozycji 45,
- z ilu różnych słów składa się plik,
- wszystkie słowa pliku w kolejności alfabetycznej (każde słowo na liście pojawia się tylko raz),
- dla każdego słowa, ile razy to słowo występuje w pliku,
- wszystkie słowa, które mają więcej niż 6 liter, w kolejności alfabetycznej, bez powtórzeń.
Do rozwiązania zadania należy uzyć odpowiednich kolekcji.
Laboratorium
- Przejść tutorial do Swinga w Netbeans.
- Uruchom programy Zagadka.java i Zagadka2.java.
Wyjaśnij, dlaczego programy tak się zachowują. Co trzeba zmienić, żeby
programy zachowywały się zgodnie z oczekiwaniami autora?
- Anagramy to słowa, które składają się z tych samych liter, ale w różnej
kolejności. Napisz program, który dla danej listy słów wypisze wszystkie
grupy anagramów pojawiające się na tej liście.
- Napisz własną implementację listy wraz z iteratorem. Twoja lista powinna mieć nastepujące operacje:
- dodawanie nowego elementu,
- rozmiar,
- test niepustości,
- iterowanie przy pomocy pętli foreach.
Wskazówki:
- Pętlą foreach można iterować po obiektach implementujących interfejs Iterable.
- Do implementacji iteratora trzeba użyć klas wewnętrznych (ang. inner classes). Klasa wewnętrzna ma dostęp do prywatnych składowych otaczającego obiektu.
- Warto przeczytać rozdział o klasach wewnętrznych z tutorialu na stronie Oracle.
- Ściągawkę, jak napisać własny iterator można znaleźć w klasie java.util.AbstractList. W Eclipse trzeba mieć podpięte źródła Javy.