ADd realizations
This commit is contained in:
21
src/main/java/ru/ilug/c1_word_counter/WordCounterImpl.java
Normal file
21
src/main/java/ru/ilug/c1_word_counter/WordCounterImpl.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package ru.ilug.c1_word_counter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class WordCounterImpl implements WordCounter {
|
||||
@Override
|
||||
public Map<String, Integer> countWords(String text) {
|
||||
String[] words = text.split(" ");
|
||||
|
||||
Map<String, Integer> wordsCount = new HashMap<>();
|
||||
|
||||
for(String word : words) {
|
||||
word = word.toLowerCase();
|
||||
int wordCount = wordsCount.getOrDefault(word, 0);
|
||||
wordsCount.put(word, wordCount + 1);
|
||||
}
|
||||
|
||||
return wordsCount;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class MainTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
PhoneBook phoneBook = null;
|
||||
PhoneBook phoneBook = new PhoneBookImpl();
|
||||
|
||||
phoneBook.addContact("Ivan", "+1 (234) 567 89 10");
|
||||
phoneBook.addContact("Dima", "+3 (456) 789 10 11");
|
||||
|
||||
24
src/main/java/ru/ilug/c2_phone_book/PhoneBookImpl.java
Normal file
24
src/main/java/ru/ilug/c2_phone_book/PhoneBookImpl.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package ru.ilug.c2_phone_book;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PhoneBookImpl implements PhoneBook {
|
||||
|
||||
private final Map<String, String> contacts = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void addContact(String name, String phone) {
|
||||
contacts.put(name, phone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String findPhoneByName(String name) {
|
||||
return contacts.get(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeContactByName(String name) {
|
||||
contacts.remove(name);
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class MainTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SimpleTranslator simpleTranslator = null;
|
||||
SimpleTranslator simpleTranslator = new SimpleTranslatorImpl();
|
||||
|
||||
simpleTranslator.addWordTranslate("подборка", "selection");
|
||||
simpleTranslator.addWordTranslate("практических", "practical");
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package ru.ilug.c3_simple_translator;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SimpleTranslatorImpl implements SimpleTranslator {
|
||||
|
||||
private final Map<String, String> wordsTranslate = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void addWordTranslate(String word, String translate) {
|
||||
wordsTranslate.put(word.toLowerCase(), translate.toLowerCase());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String translate(String text) {
|
||||
return Arrays.stream(text.split(" "))
|
||||
.map(w -> wordsTranslate.getOrDefault(w.toLowerCase(), w))
|
||||
.collect(Collectors.joining(" "));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,9 +9,10 @@ import java.util.Map;
|
||||
public class MainTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SchoolJournal schoolJournal = null;
|
||||
SchoolJournal schoolJournal = new SchoolJournalImpl();
|
||||
|
||||
schoolJournal.addScore("Ivan", 4);
|
||||
schoolJournal.addScore("Ivan", 5);
|
||||
schoolJournal.addScores("Andrey", List.of(3, 4, 4));
|
||||
schoolJournal.addScores("Maria", List.of(5, 5, 4, 5, 4));
|
||||
schoolJournal.addScores("Dima", List.of(4, 5, 3, 5, 5));
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package ru.ilug.c4_school_journal;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SchoolJournalImpl implements SchoolJournal {
|
||||
|
||||
private final Map<String, List<Integer>> studentsScores = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void addScore(String name, int score) {
|
||||
studentsScores.computeIfAbsent(name, k -> new LinkedList<>()).add(score);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addScores(String name, Collection<Integer> scores) {
|
||||
studentsScores.computeIfAbsent(name, k -> new LinkedList<>()).addAll(scores);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Float> getAverageScorePerStudent() {
|
||||
Map<String, Float> averageScores = new HashMap<>();
|
||||
|
||||
for (Map.Entry<String, List<Integer>> entry : studentsScores.entrySet()) {
|
||||
String name = entry.getKey();
|
||||
List<Integer> scores = entry.getValue();
|
||||
|
||||
float averageScore = (float) scores.stream().mapToInt(s -> s).average().orElse(0f);
|
||||
|
||||
averageScores.put(name, averageScore);
|
||||
}
|
||||
|
||||
return averageScores;
|
||||
|
||||
// return studentsScores.entrySet().stream()
|
||||
// .collect(Collectors.toMap(Map.Entry::getKey, e -> {
|
||||
// List<Integer> scores = e.getValue();
|
||||
// int scoresSum = scores.stream().mapToInt(s -> s).sum();
|
||||
// return (float) scoresSum / scores.size();
|
||||
// }));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> studentsWithAverageScoreHighThen(float averageScore) {
|
||||
return getAverageScorePerStudent().entrySet().stream()
|
||||
.filter(e -> e.getValue() >= averageScore)
|
||||
.map(Map.Entry::getKey)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user