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
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
- 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