From b5c14f3708f9714262e1a25e1a2721dce1a22189 Mon Sep 17 00:00:00 2001 From: TchockDonwood Date: Wed, 29 Apr 2026 08:50:11 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B0=D0=B2=D0=B8=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=A1=D0=B5=D0=BC=D1=91=D0=BD=20=D0=9F=D1=80=D0=98-202.=20?= =?UTF-8?q?=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=2010?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Task01Main.java | 9 +++--- task02/src/com/example/task02/Task02Main.java | 12 +++---- task03/src/com/example/task03/Task03Main.java | 4 ++- task04/src/com/example/task04/Task04Main.java | 30 ++++++++++++++++-- task05/src/com/example/task05/MailItem.java | 7 +++++ .../src/com/example/task05/MailMessage.java | 28 +++++++++++++++++ .../src/com/example/task05/MailService.java | 31 +++++++++++++++++++ task05/src/com/example/task05/Salary.java | 30 ++++++++++++++++++ task05/src/com/example/task05/Task05Main.java | 9 ++---- 9 files changed, 139 insertions(+), 21 deletions(-) create mode 100644 task05/src/com/example/task05/MailItem.java create mode 100644 task05/src/com/example/task05/MailMessage.java create mode 100644 task05/src/com/example/task05/MailService.java create mode 100644 task05/src/com/example/task05/Salary.java diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index de4599c1..9646ecd7 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -1,6 +1,7 @@ package com.example.task01; import java.io.IOException; +import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; @@ -9,13 +10,11 @@ public static void main(String[] args) throws IOException { // TODO С корректно реализованным методом ternaryOperator должен компилироваться и успешно работать следующий код: - /* + Predicate condition = Objects::isNull; Function ifTrue = obj -> 0; Function ifFalse = CharSequence::length; Function safeStringLength = ternaryOperator(condition, ifTrue, ifFalse); - */ - } public static Function ternaryOperator( @@ -23,7 +22,9 @@ public static Function ternaryOperator( Function ifTrue, Function ifFalse) { - return null; // your implementation here + if (condition == null || ifTrue == null || ifFalse == null) + throw new NullPointerException(); + return x -> condition.test(x) ? ifTrue.apply(x) : ifFalse.apply(x); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 309260d8..aeee16c0 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -5,19 +5,19 @@ public class Task02Main { public static void main(String[] args) { - - /* cycleGrayCode(2) .limit(10) .forEach(System.out::println); - */ - } public static IntStream cycleGrayCode(int n) { + if (n < 1 || n > 16) { throw new IllegalArgumentException(); } + int size = 1 << n; - return null; // your implementation here - + return IntStream + .iterate(0, i -> i + 1) + .map(i -> i % size) + .map(i -> i ^ (i >> 1)); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 254d5cb0..e569a50a 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -21,7 +21,9 @@ public static void findMinMax( Stream stream, Comparator order, BiConsumer minMaxConsumer) { + try (Stream ){ - // your implementation here + } + //return x -> stream.min(order); } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 1e38e6eb..c0937936 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,11 +1,35 @@ package com.example.task04; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + public class Task04Main { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(System.in, "UTF-8"))) { - // your implementation here + String text = reader.lines().collect(Collectors.joining(" ")); - } + String result = java.util.Arrays.stream(text.split("[^\\p{L}\\d]+")) + .filter(word -> !word.isEmpty()) + .map(String::toLowerCase) + .collect(Collectors.groupingBy(w -> w, Collectors.counting())) + .entrySet() + .stream() + .sorted( + Map.Entry.comparingByValue().reversed() + .thenComparing(Map.Entry.comparingByKey()) + ) + .limit(10) + .map(Map.Entry::getKey) + .collect(Collectors.joining("\n")); + System.out.println(result); + } + } } diff --git a/task05/src/com/example/task05/MailItem.java b/task05/src/com/example/task05/MailItem.java new file mode 100644 index 00000000..90a2fe9d --- /dev/null +++ b/task05/src/com/example/task05/MailItem.java @@ -0,0 +1,7 @@ +package com.example.task05; + +public interface MailItem { + String getFrom(); + String getTo(); + T getContent(); +} diff --git a/task05/src/com/example/task05/MailMessage.java b/task05/src/com/example/task05/MailMessage.java new file mode 100644 index 00000000..de23cad6 --- /dev/null +++ b/task05/src/com/example/task05/MailMessage.java @@ -0,0 +1,28 @@ +package com.example.task05; + +public class MailMessage implements MailItem{ + + private final String from; + private final String to; + private final String content; + public MailMessage(String from, String to, String content) { + this.from = from; + this.to = to; + this.content = content; + } + + @Override + public String getFrom() { + return from; + } + + @Override + public String getTo() { + return to; + } + + @Override + public String getContent() { + return content; + } +} \ No newline at end of file diff --git a/task05/src/com/example/task05/MailService.java b/task05/src/com/example/task05/MailService.java new file mode 100644 index 00000000..9f5e6b46 --- /dev/null +++ b/task05/src/com/example/task05/MailService.java @@ -0,0 +1,31 @@ +package com.example.task05; + +import java.util.*; +import java.util.function.Consumer; + +public class MailService implements Consumer> { + private final Map> mailBox = new HashMap<>(); + + @Override + public void accept(MailItem mailItem) { + if (mailItem == null) return; + String to = mailItem.getTo(); + T content = mailItem.getContent(); + if (to == null || content == null) return; + mailBox.computeIfAbsent(to, k -> new ArrayList<>()).add(content); + } + + public Map> getMailBox() { + return new AbstractMap>() { + @Override + public Set>> entrySet() { + return mailBox.entrySet(); + } + @Override + public List get(Object key) { + List list = mailBox.get(key); + return list != null ? list : Collections.emptyList(); + } + }; + } +} \ No newline at end of file diff --git a/task05/src/com/example/task05/Salary.java b/task05/src/com/example/task05/Salary.java new file mode 100644 index 00000000..677885bd --- /dev/null +++ b/task05/src/com/example/task05/Salary.java @@ -0,0 +1,30 @@ +package com.example.task05; + +public class Salary implements MailItem { + + private final String from; + private final String to; + private final Integer amount; + + + public Salary(String from, String to, Integer amount) { + this.from = from; + this.to = to; + this.amount = amount; + } + + @Override + public String getFrom() { + return from; + } + + @Override + public String getTo() { + return to; + } + + @Override + public Integer getContent() { + return amount; + } +} diff --git a/task05/src/com/example/task05/Task05Main.java b/task05/src/com/example/task05/Task05Main.java index ae31f6bc..f6969c1c 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -9,11 +9,8 @@ public class Task05Main { public static void main(String[] args) { - /* - - // Random variables - String randomFrom = "..."; // Некоторая случайная строка. Можете выбрать ее самостоятельно. - String randomTo = "..."; // Некоторая случайная строка. Можете выбрать ее самостоятельно. + String randomFrom = "one"; // Некоторая случайная строка. Можете выбрать ее самостоятельно. + String randomTo = "ten"; // Некоторая случайная строка. Можете выбрать ее самостоятельно. int randomSalary = 100; // Некоторое случайное целое положительное число. Можете выбрать его самостоятельно. // Создание списка из трех почтовых сообщений. @@ -88,8 +85,6 @@ public static void main(String[] args) { assert salaries.get(randomTo).equals(Arrays.asList(randomSalary)) : "wrong salaries mailbox content (3)"; - */ - } }