Skip to content

Commit d6ff931

Browse files
authored
Merge pull request #2384
newMain
2 parents bfa567b + d97e54b commit d6ff931

File tree

10 files changed

+238
-26
lines changed

10 files changed

+238
-26
lines changed

1.JavaSyntax/src/com/javarush/task/pro/task18/task1821/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static Optional<Car> getCheapestCar(Stream<Car> cars) {
3737
}
3838

3939
public static Optional<Car> getCheaperCar(Stream<Car> cars, Car cheapestCar) {
40-
return cars.filter(x -> x.getPrice() < cheapestCar.getPrice()).findFirst();
40+
return cars.filter(car -> car.getPrice() < cheapestCar.getPrice()).findFirst();
4141
}
4242
}
4343

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.javarush.task.jdk13.task35.task3506;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
import java.util.ArrayList;
7+
import java.util.Arrays;
8+
import java.util.List;
9+
10+
public class Main {
11+
public static void main(String[] args) {
12+
List<Animal> animals = new ArrayList<>(Arrays.asList(new Animal(1), new Animal(2)));
13+
List<Pet> pets1 = new ArrayList<>(Arrays.asList(new Pet(3), new Pet(4)));
14+
List<Pet> pets2 = new ArrayList<>(Arrays.asList(new Pet(5), new Pet(6)));
15+
List<Cat> cats = new ArrayList<>(Arrays.asList(new Cat(7), new Cat(8)));
16+
17+
MySolution mySolution = new MySolution();
18+
mySolution.one(pets1, pets2);
19+
System.out.println(pets1);
20+
System.out.println(pets2);
21+
22+
mySolution.two(pets2, cats);
23+
System.out.println(pets2);
24+
System.out.println(cats);
25+
26+
mySolution.three(animals, pets1);
27+
System.out.println(animals);
28+
System.out.println(pets1);
29+
30+
mySolution.four(animals, cats);
31+
System.out.println(cats);
32+
System.out.println(animals);
33+
34+
}
35+
}
36+
37+
@Getter
38+
@AllArgsConstructor
39+
class Animal {
40+
private int number;
41+
42+
@Override
43+
public String toString() {
44+
return Animal.class.getSimpleName() + "{" +
45+
"number=" + number +
46+
'}';
47+
}
48+
}
49+
50+
class Pet extends Animal {
51+
52+
public Pet(int number) {
53+
super(number);
54+
}
55+
56+
@Override
57+
public String toString() {
58+
return Pet.class.getSimpleName() + "{" +
59+
"number=" + getNumber() +
60+
'}';
61+
}
62+
}
63+
64+
class Cat extends Pet {
65+
66+
public Cat(int number) {
67+
super(number);
68+
}
69+
70+
@Override
71+
public String toString() {
72+
return Cat.class.getSimpleName() + "{" +
73+
"number=" + getNumber() +
74+
'}';
75+
}
76+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.javarush.task.jdk13.task35.task3506;
2+
3+
import java.util.List;
4+
5+
public class MySolution extends Solution{
6+
@Override
7+
public <T> void one(List<T> destination, List<T> source) {
8+
destination.addAll(source);
9+
}
10+
11+
@Override
12+
public <T> void two(List<T> destination, List<? extends T> source) {
13+
destination.addAll(source);
14+
}
15+
16+
@Override
17+
public <T> void three(List<? super T> destination, List<T> source) {
18+
destination.addAll(source);
19+
}
20+
21+
@Override
22+
public <T> void four(List<? super T> destination, List<? extends T> source) {
23+
destination.addAll(source);
24+
}
25+
}

2.JavaCore/src/com/javarush/task/jdk13/task35/task3506/Условие.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11

22
### extends vs super
33

4-
Логика всех методов - добавить source в destination.
4+
Логика всех методов - добавить source в destination.\
55
!!!Расставь ?, extends и super где необходимо:!!!
66
1) one - должен работать с одним и тем же типом;
77
2) two - должен добавлять любых наследников типа T в список, умеющий хранить только тип T;
88
3) three - должен добавлять объекты типа T в любой список, параметризированный любым родительским классом;
9-
4) four - должен добавлять любых наследников типа T в список, параметризированный любым родительским классом.
9+
4) four - должен добавлять любых наследников типа T в список, параметризированный любым родительским классом.\
1010
Не оставляй закомментированный код.
1111

1212

2.JavaCore/src/com/javarush/task/jdk13/task35/task3507/Solution.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,5 @@ public static <K, V> HashMap<K, V> newHashMap(List<? extends K> keys, List<? ext
3838

3939
return map;
4040
// return IntStream.range(0, keys.size()).boxed().collect(Collectors.toMap(keys::get, values::get, (a, b) -> b, HashMap::new));
41-
4241
}
4342
}

2.JavaCore/src/com/javarush/task/task19/task1904/Solution.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.io.File;
44
import java.io.IOException;
5-
import java.time.LocalDate;
65
import java.util.Calendar;
76
import java.util.Date;
87
import java.util.GregorianCalendar;

2.JavaCore/src/com/javarush/task/task19/task1917/FileConsoleWriter.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,11 @@ public FileConsoleWriter(FileDescriptor fd) {
3333
fileWriter = new FileWriter(fd);
3434
}
3535

36-
public static void main(String[] args) {
37-
38-
}
39-
4036
public void write(char[] cbuf, int off, int len) throws IOException {
4137
fileWriter.write(cbuf, off, len);
4238
System.out.println(new String(cbuf, off, len));
4339
}
40+
4441
public void write(int c) throws IOException {
4542
fileWriter.write(c);
4643
System.out.println((char) c);
@@ -61,5 +58,7 @@ public void close() throws IOException {
6158
fileWriter.close();
6259
}
6360

61+
public static void main(String[] args) {
6462

63+
}
6564
}

2.JavaCore/src/com/javarush/task/task19/task1918/Solution.java

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
import java.io.FileReader;
1010
import java.io.IOException;
1111
import java.io.InputStreamReader;
12+
import java.util.ArrayList;
13+
import java.util.Iterator;
14+
import java.util.List;
15+
import java.util.Stack;
1216

1317
/*
1418
Знакомство с тегами
@@ -21,13 +25,111 @@ public static void main(String[] args) throws IOException {
2125

2226
try (BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
2327
BufferedReader reader = new BufferedReader(new FileReader(console.readLine()))) {
28+
2429
while (reader.ready()) {
2530
builder.append(reader.readLine());
2631
}
2732

2833
Document document = Jsoup.parse(builder.toString(), "", Parser.xmlParser());
2934
Elements elements = document.select(args[0]);
3035
elements.forEach(System.out::println);
36+
37+
}
38+
}
39+
40+
public static void main1(String[] args) throws IOException {
41+
try (BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
42+
BufferedReader bufferedReader = new BufferedReader((new FileReader(console.readLine())))) {
43+
StringBuilder stringBuilder = new StringBuilder();
44+
45+
while (bufferedReader.ready()) {
46+
stringBuilder.append(bufferedReader.readLine());
47+
}
48+
49+
String line = stringBuilder.toString();
50+
51+
int tagIndex = line.indexOf("<" + args[0]);
52+
List<Integer> tagList = new ArrayList<>();
53+
54+
while (tagIndex != -1) {
55+
tagList.add(tagIndex);
56+
57+
tagIndex = line.indexOf("<" + args[0], tagIndex + 1);
58+
}
59+
60+
for (Integer startIndex : tagList) {
61+
int lastOpenTagIndex = startIndex;
62+
int lastCloseTagIndex = line.indexOf("</" + args[0], lastOpenTagIndex);
63+
64+
while (true) {
65+
int next = line.indexOf("<" + args[0], lastOpenTagIndex + 1);
66+
if (next < lastCloseTagIndex && lastOpenTagIndex < next) {
67+
lastOpenTagIndex = line.indexOf("<" + args[0], lastOpenTagIndex + 1);
68+
lastCloseTagIndex = line.indexOf("</" + args[0], lastCloseTagIndex + 1);
69+
} else {
70+
System.out.println(line.substring(startIndex, lastCloseTagIndex + 3 + args[0].length()));
71+
break;
72+
}
73+
}
74+
}
75+
}
76+
}
77+
78+
public static void main2(String[] args) {
79+
String fileName = null;
80+
try (BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in))) {
81+
fileName = consoleReader.readLine();
82+
} catch (IOException ignore) {
83+
}
84+
85+
StringBuilder readFileContent = new StringBuilder();
86+
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName))) {
87+
while (fileReader.ready()) {
88+
readFileContent.append(fileReader.readLine());
89+
}
90+
} catch (IOException ignore) {
91+
}
92+
93+
String fileContent = readFileContent.toString().replaceAll("[\\r\\n]+", "");
94+
95+
String tag = args[0];
96+
String openedTag = "<" + tag;
97+
String closedTag = "</" + tag;
98+
int openedTagIndex = fileContent.indexOf(openedTag);
99+
int closedTagIndex = fileContent.indexOf(closedTag);
100+
ArrayList<Integer> openedTagsIndexes = new ArrayList<>();
101+
ArrayList<Integer> closedTagsIndexes = new ArrayList<>();
102+
103+
while (openedTagIndex != -1 || closedTagIndex != -1) {
104+
if (openedTagIndex != -1 && openedTagIndex < closedTagIndex) {
105+
openedTagsIndexes.add(openedTagIndex);
106+
openedTagIndex = fileContent.indexOf(openedTag, openedTagIndex + 1);
107+
} else if (closedTagIndex < openedTagIndex || openedTagIndex == -1) {
108+
closedTagsIndexes.add(closedTagIndex + tag.length() + 3);
109+
closedTagIndex = fileContent.indexOf(closedTag, closedTagIndex + 1);
110+
}
111+
}
112+
113+
Stack<String> stack = new Stack<>();
114+
for (int i = openedTagsIndexes.size() - 1; i >= 0; i--) {
115+
stack.push(fileContent.substring(openedTagsIndexes.get(i), getNextCloseTag(closedTagsIndexes, openedTagsIndexes.get(i))));
116+
}
117+
118+
while (stack.size() > 0) {
119+
System.out.println(stack.pop());
31120
}
32121
}
33-
}
122+
123+
private static int getNextCloseTag(ArrayList<Integer> closedTagsIndexes, Integer openTagIndex) {
124+
Iterator<Integer> iterator = closedTagsIndexes.iterator();
125+
while (iterator.hasNext()) {
126+
Integer next = iterator.next();
127+
if (next > openTagIndex) {
128+
iterator.remove();
129+
return next;
130+
}
131+
}
132+
return 0;
133+
}
134+
135+
}

2.JavaCore/src/com/javarush/task/task19/task1918/Условие.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,28 @@
22
### Знакомство с тегами
33

44
Считай с консоли имя файла, который имеет HTML-формат.
5+
56
Пример:
7+
68
Info about Leela &lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&lt;b&gt;&lt;span&gt;Turanga Leela
79
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;Super&lt;/span&gt;&lt;span&gt;girl&lt;/span&gt;
8-
Первым параметром в метод main приходит тег. Например, &quot;span&quot;.
9-
Вывести на консоль все теги, которые соответствуют заданному тегу.
10+
11+
Первым параметром в метод main приходит тег. Например, &quot;span&quot;.\
12+
Вывести на консоль все теги, которые соответствуют заданному тегу.\
1013
Каждый тег на новой строке, порядок должен соответствовать порядку следования в файле.
11-
Количество пробелов, \n, \r не влияют на результат.
14+
Количество пробелов, \n, \r не влияют на результат.\
1215
Файл не содержит тег CDATA, для всех открывающих тегов имеется отдельный закрывающий тег, одиночных тегов нет.
1316
Тег может содержать вложенные теги.
17+
1418
Пример вывода:
19+
1520
&lt;span xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;&lt;b&gt;&lt;span&gt;Turanga Leela&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
1621
&lt;span&gt;Turanga Leela&lt;/span&gt;
1722
&lt;span&gt;Super&lt;/span&gt;
1823
&lt;span&gt;girl&lt;/span&gt;
1924

2025
Шаблон тега:
26+
2127
&lt;tag&gt;text1&lt;/tag&gt;
2228
&lt;tag text2&gt;text1&lt;/tag&gt;
2329
&lt;tag

2.JavaCore/src/com/javarush/task/task19/task1924/Solution.java

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.*;
44
import java.util.HashMap;
55
import java.util.Map;
6+
import java.util.stream.IntStream;
67

78
/*
89
Замена чисел
@@ -12,19 +13,24 @@ public class Solution {
1213
public static Map<Integer, String> map = new HashMap<>();
1314

1415
static {
15-
map.put(0, "ноль");
16-
map.put(1, "один");
17-
map.put(2, "два");
18-
map.put(3, "три");
19-
map.put(4, "четыре");
20-
map.put(5, "пять");
21-
map.put(6, "шесть");
22-
map.put(7, "семь");
23-
map.put(8, "восемь");
24-
map.put(9, "девять");
25-
map.put(10, "десять");
26-
map.put(11, "одиннадцать");
27-
map.put(12, "двенадцать");
16+
String[] array = {"ноль", "один", "два", "три", "четыре", "пять", "шесть",
17+
"семь", "восемь", "девять", "десять", "одиннадцать", "двенадцать"};
18+
19+
IntStream.range(0, array.length).forEach(i -> map.put(i, array[i]));
20+
21+
// map.put(0, "ноль");
22+
// map.put(1, "один");
23+
// map.put(2, "два");
24+
// map.put(3, "три");
25+
// map.put(4, "четыре");
26+
// map.put(5, "пять");
27+
// map.put(6, "шесть");
28+
// map.put(7, "семь");
29+
// map.put(8, "восемь");
30+
// map.put(9, "девять");
31+
// map.put(10, "десять");
32+
// map.put(11, "одиннадцать");
33+
// map.put(12, "двенадцать");
2834
}
2935

3036
public static void main(String[] args) throws IOException {

0 commit comments

Comments
 (0)