From 42d9bcbd9419d1aa0bb1d36ffc4e24841c610d4d Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:23:47 +0300 Subject: [PATCH 1/7] add solution University Core task 3506 --- .../task/jdk13/task35/task3506/Main.java | 76 +++++++++++++++++++ .../jdk13/task35/task3506/MySolution.java | 25 ++++++ ...20\273\320\276\320\262\320\270\320\265.md" | 4 +- 3 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/Main.java create mode 100644 2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/MySolution.java diff --git a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/Main.java b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/Main.java new file mode 100644 index 000000000..f53691b4a --- /dev/null +++ b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/Main.java @@ -0,0 +1,76 @@ +package com.javarush.task.jdk13.task35.task3506; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Main { + public static void main(String[] args) { + List animals = new ArrayList<>(Arrays.asList(new Animal(1), new Animal(2))); + List pets1 = new ArrayList<>(Arrays.asList(new Pet(3), new Pet(4))); + List pets2 = new ArrayList<>(Arrays.asList(new Pet(5), new Pet(6))); + List cats = new ArrayList<>(Arrays.asList(new Cat(7), new Cat(8))); + + MySolution mySolution = new MySolution(); + mySolution.one(pets1, pets2); + System.out.println(pets1); + System.out.println(pets2); + + mySolution.two(pets2, cats); + System.out.println(pets2); + System.out.println(cats); + + mySolution.three(animals, pets1); + System.out.println(animals); + System.out.println(pets1); + + mySolution.four(animals, cats); + System.out.println(cats); + System.out.println(animals); + + } +} + +@Getter +@AllArgsConstructor +class Animal { + private int number; + + @Override + public String toString() { + return Animal.class.getSimpleName() + "{" + + "number=" + number + + '}'; + } +} + +class Pet extends Animal { + + public Pet(int number) { + super(number); + } + + @Override + public String toString() { + return Pet.class.getSimpleName() + "{" + + "number=" + getNumber() + + '}'; + } +} + +class Cat extends Pet { + + public Cat(int number) { + super(number); + } + + @Override + public String toString() { + return Cat.class.getSimpleName() + "{" + + "number=" + getNumber() + + '}'; + } +} \ No newline at end of file diff --git a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/MySolution.java b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/MySolution.java new file mode 100644 index 000000000..6673f077b --- /dev/null +++ b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/MySolution.java @@ -0,0 +1,25 @@ +package com.javarush.task.jdk13.task35.task3506; + +import java.util.List; + +public class MySolution extends Solution{ + @Override + public void one(List destination, List source) { + destination.addAll(source); + } + + @Override + public void two(List destination, List source) { + destination.addAll(source); + } + + @Override + public void three(List destination, List source) { + destination.addAll(source); + } + + @Override + public void four(List destination, List source) { + destination.addAll(source); + } +} diff --git "a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" "b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" index 497ea1a26..2c28470e9 100644 --- "a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" +++ "b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" @@ -1,12 +1,12 @@ ### extends vs super -Логика всех методов - добавить source в destination. +Логика всех методов - добавить source в destination.\ !!!Расставь ?, extends и super где необходимо:!!! 1) one - должен работать с одним и тем же типом; 2) two - должен добавлять любых наследников типа T в список, умеющий хранить только тип T; 3) three - должен добавлять объекты типа T в любой список, параметризированный любым родительским классом; -4) four - должен добавлять любых наследников типа T в список, параметризированный любым родительским классом. +4) four - должен добавлять любых наследников типа T в список, параметризированный любым родительским классом.\ Не оставляй закомментированный код. From 572d6a772913b618a8decf3c8f55c7c8a617c49d Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:24:05 +0300 Subject: [PATCH 2/7] add solution University Core task 3507 --- .../src/com/javarush/task/jdk13/task35/task3507/Solution.java | 1 - 1 file changed, 1 deletion(-) diff --git a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3507/Solution.java b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3507/Solution.java index 8a39d516a..5b7dd782f 100644 --- a/2.JavaCore/src/com/javarush/task/jdk13/task35/task3507/Solution.java +++ b/2.JavaCore/src/com/javarush/task/jdk13/task35/task3507/Solution.java @@ -38,6 +38,5 @@ public static HashMap newHashMap(List keys, List b, HashMap::new)); - } } From f6940fd22944d4be9a441627376e8c2d0ca13d52 Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:24:31 +0300 Subject: [PATCH 3/7] add solution Core task 1904 --- 2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java | 1 - 1 file changed, 1 deletion(-) diff --git a/2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java b/2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java index a570ffabd..167b24a46 100644 --- a/2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java +++ b/2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java @@ -2,7 +2,6 @@ import java.io.File; import java.io.IOException; -import java.time.LocalDate; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; From ba6b476a1be0cd3f07032d253cd790760789e23b Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:24:51 +0300 Subject: [PATCH 4/7] add solution Core task 1917 --- .../javarush/task/task19/task1917/FileConsoleWriter.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/2.JavaCore/src/com/javarush/task/task19/task1917/FileConsoleWriter.java b/2.JavaCore/src/com/javarush/task/task19/task1917/FileConsoleWriter.java index adb7f8438..410c6ad87 100644 --- a/2.JavaCore/src/com/javarush/task/task19/task1917/FileConsoleWriter.java +++ b/2.JavaCore/src/com/javarush/task/task19/task1917/FileConsoleWriter.java @@ -33,14 +33,11 @@ public FileConsoleWriter(FileDescriptor fd) { fileWriter = new FileWriter(fd); } - public static void main(String[] args) { - - } - public void write(char[] cbuf, int off, int len) throws IOException { fileWriter.write(cbuf, off, len); System.out.println(new String(cbuf, off, len)); } + public void write(int c) throws IOException { fileWriter.write(c); System.out.println((char) c); @@ -61,5 +58,7 @@ public void close() throws IOException { fileWriter.close(); } + public static void main(String[] args) { + } } From 035529c4ed145ab6be4d4c59106aa57e804b6c9c Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:28:34 +0300 Subject: [PATCH 5/7] add solution Core task 1924 --- .../task/task19/task1924/Solution.java | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/2.JavaCore/src/com/javarush/task/task19/task1924/Solution.java b/2.JavaCore/src/com/javarush/task/task19/task1924/Solution.java index ba16d2e10..25b4d9757 100644 --- a/2.JavaCore/src/com/javarush/task/task19/task1924/Solution.java +++ b/2.JavaCore/src/com/javarush/task/task19/task1924/Solution.java @@ -3,6 +3,7 @@ import java.io.*; import java.util.HashMap; import java.util.Map; +import java.util.stream.IntStream; /* Замена чисел @@ -12,19 +13,24 @@ public class Solution { public static Map map = new HashMap<>(); static { - map.put(0, "ноль"); - map.put(1, "один"); - map.put(2, "два"); - map.put(3, "три"); - map.put(4, "четыре"); - map.put(5, "пять"); - map.put(6, "шесть"); - map.put(7, "семь"); - map.put(8, "восемь"); - map.put(9, "девять"); - map.put(10, "десять"); - map.put(11, "одиннадцать"); - map.put(12, "двенадцать"); + String[] array = {"ноль", "один", "два", "три", "четыре", "пять", "шесть", + "семь", "восемь", "девять", "десять", "одиннадцать", "двенадцать"}; + + IntStream.range(0, array.length).forEach(i -> map.put(i, array[i])); + +// map.put(0, "ноль"); +// map.put(1, "один"); +// map.put(2, "два"); +// map.put(3, "три"); +// map.put(4, "четыре"); +// map.put(5, "пять"); +// map.put(6, "шесть"); +// map.put(7, "семь"); +// map.put(8, "восемь"); +// map.put(9, "девять"); +// map.put(10, "десять"); +// map.put(11, "одиннадцать"); +// map.put(12, "двенадцать"); } public static void main(String[] args) throws IOException { From 0fe52630260e2db7bf50e361100a77dd3ffd4f3c Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:37:58 +0300 Subject: [PATCH 6/7] add solution Core task 1918 --- .../task/task19/task1918/Solution.java | 104 +++++++++++++++++- ...20\273\320\276\320\262\320\270\320\265.md" | 12 +- 2 files changed, 112 insertions(+), 4 deletions(-) diff --git a/2.JavaCore/src/com/javarush/task/task19/task1918/Solution.java b/2.JavaCore/src/com/javarush/task/task19/task1918/Solution.java index 85eddbbbb..14f6d090a 100644 --- a/2.JavaCore/src/com/javarush/task/task19/task1918/Solution.java +++ b/2.JavaCore/src/com/javarush/task/task19/task1918/Solution.java @@ -9,6 +9,10 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Stack; /* Знакомство с тегами @@ -21,6 +25,7 @@ public static void main(String[] args) throws IOException { try (BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); BufferedReader reader = new BufferedReader(new FileReader(console.readLine()))) { + while (reader.ready()) { builder.append(reader.readLine()); } @@ -28,6 +33,103 @@ public static void main(String[] args) throws IOException { Document document = Jsoup.parse(builder.toString(), "", Parser.xmlParser()); Elements elements = document.select(args[0]); elements.forEach(System.out::println); + + } + } + + public static void main1(String[] args) throws IOException { + try (BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader bufferedReader = new BufferedReader((new FileReader(console.readLine())))) { + StringBuilder stringBuilder = new StringBuilder(); + + while (bufferedReader.ready()) { + stringBuilder.append(bufferedReader.readLine()); + } + + String line = stringBuilder.toString(); + + int tagIndex = line.indexOf("<" + args[0]); + List tagList = new ArrayList<>(); + + while (tagIndex != -1) { + tagList.add(tagIndex); + + tagIndex = line.indexOf("<" + args[0], tagIndex + 1); + } + + for (Integer startIndex : tagList) { + int lastOpenTagIndex = startIndex; + int lastCloseTagIndex = line.indexOf(" openedTagsIndexes = new ArrayList<>(); + ArrayList closedTagsIndexes = new ArrayList<>(); + + while (openedTagIndex != -1 || closedTagIndex != -1) { + if (openedTagIndex != -1 && openedTagIndex < closedTagIndex) { + openedTagsIndexes.add(openedTagIndex); + openedTagIndex = fileContent.indexOf(openedTag, openedTagIndex + 1); + } else if (closedTagIndex < openedTagIndex || openedTagIndex == -1) { + closedTagsIndexes.add(closedTagIndex + tag.length() + 3); + closedTagIndex = fileContent.indexOf(closedTag, closedTagIndex + 1); + } + } + + Stack stack = new Stack<>(); + for (int i = openedTagsIndexes.size() - 1; i >= 0; i--) { + stack.push(fileContent.substring(openedTagsIndexes.get(i), getNextCloseTag(closedTagsIndexes, openedTagsIndexes.get(i)))); + } + + while (stack.size() > 0) { + System.out.println(stack.pop()); } } -} \ No newline at end of file + + private static int getNextCloseTag(ArrayList closedTagsIndexes, Integer openTagIndex) { + Iterator iterator = closedTagsIndexes.iterator(); + while (iterator.hasNext()) { + Integer next = iterator.next(); + if (next > openTagIndex) { + iterator.remove(); + return next; + } + } + return 0; + } + +} diff --git "a/2.JavaCore/src/com/javarush/task/task19/task1918/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" "b/2.JavaCore/src/com/javarush/task/task19/task1918/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" index 13c7974a9..1f4568bb7 100644 --- "a/2.JavaCore/src/com/javarush/task/task19/task1918/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" +++ "b/2.JavaCore/src/com/javarush/task/task19/task1918/\320\243\321\201\320\273\320\276\320\262\320\270\320\265.md" @@ -2,22 +2,28 @@ ### Знакомство с тегами Считай с консоли имя файла, который имеет HTML-формат. + Пример: + Info about Leela <span xml:lang="en" lang="en"><b><span>Turanga Leela </span></b></span><span>Super</span><span>girl</span> -Первым параметром в метод main приходит тег. Например, "span". -Вывести на консоль все теги, которые соответствуют заданному тегу. + +Первым параметром в метод main приходит тег. Например, "span".\ +Вывести на консоль все теги, которые соответствуют заданному тегу.\ Каждый тег на новой строке, порядок должен соответствовать порядку следования в файле. -Количество пробелов, \n, \r не влияют на результат. +Количество пробелов, \n, \r не влияют на результат.\ Файл не содержит тег CDATA, для всех открывающих тегов имеется отдельный закрывающий тег, одиночных тегов нет. Тег может содержать вложенные теги. + Пример вывода: + <span xml:lang="en" lang="en"><b><span>Turanga Leela</span></b></span> <span>Turanga Leela</span> <span>Super</span> <span>girl</span> Шаблон тега: + <tag>text1</tag> <tag text2>text1</tag> <tag From d97e54b57dd093d001675e9f16774541a4ed4bc0 Mon Sep 17 00:00:00 2001 From: oldSorcerer Date: Sun, 15 Jun 2025 10:38:54 +0300 Subject: [PATCH 7/7] add solution Syntax task 1821 --- .../src/com/javarush/task/pro/task18/task1821/Solution.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1.JavaSyntax/src/com/javarush/task/pro/task18/task1821/Solution.java b/1.JavaSyntax/src/com/javarush/task/pro/task18/task1821/Solution.java index 8b658e14c..0c22b8af3 100644 --- a/1.JavaSyntax/src/com/javarush/task/pro/task18/task1821/Solution.java +++ b/1.JavaSyntax/src/com/javarush/task/pro/task18/task1821/Solution.java @@ -37,7 +37,7 @@ public static Optional getCheapestCar(Stream cars) { } public static Optional getCheaperCar(Stream cars, Car cheapestCar) { - return cars.filter(x -> x.getPrice() < cheapestCar.getPrice()).findFirst(); + return cars.filter(car -> car.getPrice() < cheapestCar.getPrice()).findFirst(); } }