From 9f068d091b83cad1d84940ae31e55b2c5e547e63 Mon Sep 17 00:00:00 2001 From: Artem Solovyov Date: Thu, 13 Mar 2025 21:23:28 +0500 Subject: [PATCH 1/5] =?UTF-8?q?=D0=A1=D0=BE=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=20=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D1=80=D0=98-20?= =?UTF-8?q?1.=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Task01Main.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index de4599c1..25fa0f20 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -23,7 +23,11 @@ public static Function ternaryOperator( Function ifTrue, Function ifFalse) { - return null; // your implementation here + if (condition == null || ifTrue == null || ifFalse == null) { + throw new NullPointerException(); + } + + return t -> condition.test(t) ? ifTrue.apply(t) : ifFalse.apply(t); } } From 18a80f1f7c0754cc6a7416c91b10be72c2aed339 Mon Sep 17 00:00:00 2001 From: Artem Solovyov Date: Thu, 13 Mar 2025 21:23:45 +0500 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A1=D0=BE=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=20=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D1=80=D0=98-20?= =?UTF-8?q?1.=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task02/src/com/example/task02/Task02Main.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 309260d8..ea63d69c 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -16,8 +16,13 @@ public static void main(String[] args) { public static IntStream cycleGrayCode(int n) { - return null; // your implementation here + if (n < 1 || n > 16) throw new IllegalArgumentException(); + return IntStream.iterate(0, i -> i + 1).map(i -> grayCodeFromBinary(i % (int) Math.pow(2, n))); } + public static int grayCodeFromBinary(int g) { + return g ^ (g >> 1); + } + } From 11e137d4791d3fbfe1b7e7c96a03565a24284681 Mon Sep 17 00:00:00 2001 From: Artem Solovyov Date: Thu, 13 Mar 2025 21:23:55 +0500 Subject: [PATCH 3/5] =?UTF-8?q?=D0=A1=D0=BE=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=20=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D1=80=D0=98-20?= =?UTF-8?q?1.=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task03/src/com/example/task03/Task03Main.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 254d5cb0..ab36e755 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,6 +1,7 @@ package com.example.task03; import java.util.Comparator; +import java.util.Iterator; import java.util.function.BiConsumer; import java.util.stream.Stream; @@ -22,6 +23,28 @@ public static void findMinMax( Comparator order, BiConsumer minMaxConsumer) { - // your implementation here + if (stream == null || order == null || minMaxConsumer == null) { + throw new NullPointerException(); + } + + Iterator iterator = stream.iterator(); + + if (!iterator.hasNext()) { + minMaxConsumer.accept(null, null); + } else { + T min = iterator.next(); + T max = min; + + while (iterator.hasNext()) { + T current = iterator.next(); + if (order.compare(current, min) < 0) { + min = current; + } else if (order.compare(current, max) > 0) { + max = current; + } + } + + minMaxConsumer.accept(min, max); + } } } From 7feb5de81032ed99b3c14db56c862637071dd67e Mon Sep 17 00:00:00 2001 From: Artem Solovyov Date: Thu, 13 Mar 2025 21:24:07 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A1=D0=BE=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=20=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D1=80=D0=98-20?= =?UTF-8?q?1.=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task04/src/com/example/task04/Task04Main.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 1e38e6eb..cbb182d9 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,11 +1,28 @@ package com.example.task04; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.Comparator; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + public class Task04Main { public static void main(String[] args) { - - // your implementation here - + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + reader.lines() + .flatMap(x -> Stream.of(x.split("\\P{L}")) + .filter(t -> !t.isEmpty()) + .map(String::toLowerCase)) + .collect(Collectors.groupingBy(t -> t, Collectors.counting())) + .entrySet() + .stream() + .sorted(Map.Entry.comparingByKey()) + .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) + .limit(10) + .map(Map.Entry::getKey) + .forEach(t -> System.out.print(t + '\n')); } } From b0c1fc506ad662b16592204da1002ff1107d7036 Mon Sep 17 00:00:00 2001 From: Artem Solovyov Date: Thu, 13 Mar 2025 21:24:19 +0500 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A1=D0=BE=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=20=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D1=80=D0=98-20?= =?UTF-8?q?1.=20=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/example/task05/MailMessage.java | 25 +++++++++++++ .../src/com/example/task05/MailService.java | 35 +++++++++++++++++++ task05/src/com/example/task05/Message.java | 9 +++++ task05/src/com/example/task05/Salary.java | 28 +++++++++++++++ 4 files changed, 97 insertions(+) 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/Message.java create mode 100644 task05/src/com/example/task05/Salary.java diff --git a/task05/src/com/example/task05/MailMessage.java b/task05/src/com/example/task05/MailMessage.java new file mode 100644 index 00000000..7070d6a9 --- /dev/null +++ b/task05/src/com/example/task05/MailMessage.java @@ -0,0 +1,25 @@ +package com.example.task05; + +public class MailMessage implements Message { + private String from; + private String to; + private String content; + + public MailMessage(String from, String to, String content) { + this.from = from; + this.to = to; + this.content = content; + } + + public String getFrom() { + return from; + } + + public String getTo() { + return to; + } + + 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..f601499d --- /dev/null +++ b/task05/src/com/example/task05/MailService.java @@ -0,0 +1,35 @@ +package com.example.task05; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.function.Consumer; + +public class MailService implements Consumer> { + HashMap> mailBox = new HashMap>() { + + @Override + public List get(Object key) { + return super.get(key) == null ? new ArrayList<>() : super.get(key); + } + }; + + public MailService() { + + } + + public HashMap> getMailBox() { + return mailBox; + } + + @Override + public void accept(Message message) { + if (!mailBox.containsKey(message.getTo())) { + mailBox.put(message.getTo(), new ArrayList<>()); + mailBox.get(message.getTo()).add(message.getContent()); + } else { + mailBox.get(message.getTo()).add(message.getContent()); + } + } + +} diff --git a/task05/src/com/example/task05/Message.java b/task05/src/com/example/task05/Message.java new file mode 100644 index 00000000..85b845d8 --- /dev/null +++ b/task05/src/com/example/task05/Message.java @@ -0,0 +1,9 @@ +package com.example.task05; + +public interface Message { + String getFrom(); + + String getTo(); + + T getContent(); +} \ 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..0bea5789 --- /dev/null +++ b/task05/src/com/example/task05/Salary.java @@ -0,0 +1,28 @@ +package com.example.task05; + +public class Salary implements Message { + private String from; + private String to; + private Integer content; + + public Salary(String from, String to, Integer content) { + this.from = from; + this.to = to; + this.content = content; + } + + @Override + public String getFrom() { + return from; + } + + @Override + public String getTo() { + return to; + } + + @Override + public Integer getContent() { + return content; + } +} \ No newline at end of file