Add realizations

This commit is contained in:
2026-01-23 09:20:12 +03:00
parent 748c786c74
commit e38ebb8c17
4 changed files with 40 additions and 4 deletions

View File

@@ -0,0 +1,19 @@
package ru.ilug.c5_char_frequency;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class CharFrequencyImpl implements CharFrequency {
@Override
public Map<Character, Integer> getCharFrequency(String text) {
return text.chars()
.mapToObj(c -> (char) c)
.collect(
Collectors.groupingBy(c -> c,
Collectors.collectingAndThen(Collectors.toList(), List::size)
)
);
}
}

View File

@@ -6,13 +6,13 @@ import lombok.extern.slf4j.Slf4j;
public class MainTest {
public static void main(String[] args) {
CharFrequency charFrequency = null;
CharFrequency charFrequency = new CharFrequencyImpl();
String text1 = "Мама мыла Милку мылом";
String text2 = "Карл у Клары украл рекламу, а Клара у Карла украла бюджет.";
log.info("First char frequency: {}", charFrequency.getSortedCharFrequency(text1));
log.info("Second char frequency: {}", charFrequency.getSortedCharFrequency(text2));
log.info("First char frequency: {}", charFrequency.getCharFrequency(text1));
log.info("Second char frequency: {}", charFrequency.getCharFrequency(text2));
}
}

View File

@@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j;
public class MainTest {
public static void main(String[] args) {
WordGroup wordGroup = null;
WordGroup wordGroup = new WordGroupImpl();
String text1 = "Карл у Клары украл рекламу, а Клара у Карла украла бюджет.";
String text2 = "Из кузова в кузов шла перегрузка арбузов. В грозу, в грязи от груза арбузов развалился кузов.";

View File

@@ -0,0 +1,17 @@
package ru.ilug.c6_word_group;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class WordGroupImpl implements WordGroup {
@Override
public Map<Integer, List<String>> groupWordsByLength(String text) {
text = text.replaceAll("[.,]", "");
return Arrays.stream(text.split(" "))
.map(String::toLowerCase)
.collect(Collectors.groupingBy(String::length));
}
}