WPR 08-10
Kolekcje
Tablica mieszająca
Zliczanie wystąpień znaków
Napisz program (klasę), który zliczy wystąpienia każdego znaku w pliku podanym
jako argument, a następnie wypisze wyniki na konsoli.
Wynik należy umieścić w kolekcji HashMap.
Kluczami będą obiekty klasy Character
Wartościami - obiekty własnej klasy Counter opakowującej liczby całkowite.
Można też wykorzystać klasę java.lang.Integer. Chodzi o to, by można było zliczać
wystąpienia danego znaku i je zapamiętywać w obiekcie będącym wartością asocjacji (klucz, wartość).
Do wypisania rezultatu może być potrzebna metoda
entrySet() z klasy HashMap, która zwraca zbiór asocjacji (klucz, wartość) -
obiektów klasy Map.Entry.
Można go przeglądać przy pomocy iteratora (uzyskanego metodą iterator()).
Dostęp do kluczy i wartości asocjacji można uzyskać metodami klasy Map.Entry :
getKey() i getValue()
Zadanie dodatkowe
Dodaj możliwość sortowania wyniku po kluczach (czyli literach) i po wartościach
(czyli liczbie wystąpień). Następnie wypisz posortowane wyniki.
Do sortowania należy użyć odpowiedniej wersji funkcji Arrays.sort(...).
Aby zamienić HashMap na tablicę należy użyć funkcji toArray(Map.Entry[]).
Argument typu Map.Entry[] będzie potrzebny ze względów technicznych.
Potrzebny będzie własny komparator (obiekt klasy implementującej interfejs Comparator),
który zostanie dostarczony jako argument do metody sortującej. Będzie on implementował
porównanie liter (kluczy) lub liczb (wartości) - zależnie od rodzaju sortowania.
Wyszukiwarka
Podobne podstrony:
WSM 10 52 pl(1)VA US Top 40 Singles Chart 2015 10 10 Debuts Top 10010 35401 (10)173 21 (10)ART2 (10)więcej podobnych podstron