Kolekcja Map,String

0

Witam, mam zadanie i nie wiem jak sie zabrać do niego ,oto treść:
Napisz program, który dla kolekcji zawierającej nazwy wszystkich miesięcy wyświetli statystykę  częstotliwości występowania liter w nazwach miesięcy,  np: dla “Ala ma kota” wyświetli a - 4 l - 1 m - 1 k - 1 o - 1 t - 1
zaczełem od utworzenia TreeSet,a i wpisania po kolei wszystkich miesiecy, dalej nie wiem jak zrobić

0

Czyli mając listę miesięcy, masz dopasować im mape z częstotliwościami literek ale tylko w tym JEDNYM MIESIĄCU np:
styczeń: s-1, t-1 etc. Czy to s i t masz sumować we wszystkich miesiącach razem?

0
  1. Zadeklaruj kolekcję i zainicjalizuj kolekcję zawierającą nazwy miesięcy.  2. Przejrzyj elementy kolekcji i dla każdego elementu zaaktualizuj dane dotyczące  statystyki występowania liter -> do przechowywania statystyki wykorzystaj mapę.  3. Po przejrzeniu wszystkich elementów wyświetl ostateczną statystykę.  4. Korzystając z mapy ze statystyką sprawdź, czy nazwy miesięcy zawierają literę ‘ć’.  5. Korzystając z mapy ze statystyką sprawdź, czy istnieje litera występująca dokładnie 13  razy w nazwach wszystkich miesięcy
1

Nie będę CI mówił jak masz to interpretować.
Poniżej masz pokazane jak zliczyć występowanie literek w danym napisie.

String string = "kiixeeee";
Map<Character, Integer> frequencies = string.chars().boxed()
.collect(Collectors.toMap(sign -> Character.valueOf((char) sign.intValue()), value -> 1, Integer::sum));

output: Frequencies: {e=4, x=1, i=2, k=1}

1
        Stream.of("January", "February", "March")
            .flatMapToInt(String::chars)
            .boxed()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
            .entrySet()
            .stream()
            .sorted(Comparator.<Map.Entry<Integer, Long>>comparingLong(Map.Entry::getValue).reversed())
            .map(it -> (char) it.getKey().intValue() + " = " + it.getValue())
            .forEach(System.out::println);
0

dzieki wielkie

1 użytkowników online, w tym zalogowanych: 0, gości: 1