Skip to content

Commit e97f0c6

Browse files
committed
Добавлен соединяющий класс AppController
1 parent 4ddc140 commit e97f0c6

15 files changed

+188
-40
lines changed

Test.class

253 Bytes
Binary file not shown.

Test.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public class Test { public static void main(String[] a) {} }

build.gradle

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@ dependencies {
1818

1919
test {
2020
useJUnitPlatform()
21-
}
21+
}
22+
23+
java {
24+
toolchain {
25+
languageVersion = JavaLanguageVersion.of(21)
26+
}
27+
}
28+
29+
tasks.withType(JavaCompile).configureEach {
30+
options.release.set(21)
31+
}

src/main/java/ClientSortingSystem.java

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/main/java/dto/Client.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dto;
22

3-
public final class Client { //DTO
3+
public final class Client {
44
private final String name;
55
private final String phoneNumber;
66
private final int idNumber;
@@ -48,4 +48,13 @@ public String getPhoneNumber() {
4848
public int getIdNumber() {
4949
return idNumber;
5050
}
51+
52+
@Override
53+
public String toString() {
54+
return "Client{" +
55+
"name='" + name + '\'' +
56+
", phoneNumber='" + phoneNumber + '\'' +
57+
", idNumber=" + idNumber +
58+
'}';
59+
}
5160
}

src/main/java/enums/Field.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package enums;
2+
3+
public enum Field {
4+
NAME,
5+
ID_NUMBER,
6+
PHONE_NUMBER
7+
}

src/main/java/input/CustomCollection.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package input;
22

3-
import java.util.*;
4-
import java.util.function.Consumer;
3+
import java.util.Arrays;
4+
import java.util.Iterator;
5+
import java.util.NoSuchElementException;
56
import java.util.stream.Stream;
67

78
/**
@@ -128,7 +129,7 @@ public Stream<T> stream() {
128129
* @param collection коллекция, содержащая элементы для добавления
129130
* @return {@code true} если эта коллекция изменилась в результате вызова
130131
*/
131-
public boolean addAll(Collection<? extends T> collection) {
132+
public boolean addAll(CustomCollection<? extends T> collection) {
132133
// Проверяем, что переданная коллекция не null и не пустая
133134
if (collection == null || collection.isEmpty()) {
134135
// Возвращаем false, так как нечего добавлять

src/main/java/input/InputManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
* @see CustomCollection
2424
* @see Client
2525
*/
26+
2627
public class InputManager {
2728
private ClientInputStrategy currentStrategy;
2829

src/main/java/sorting/MergeSortStrategy.java renamed to src/main/java/sorting/AbstractMergeSortStrategy.java

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,7 @@
55
import java.util.Comparator;
66
import java.util.List;
77

8-
public class MergeSortStrategy implements SortingStrategy {
9-
10-
@Override
11-
public void sort(List<Client> clients) {
12-
Comparator<Client> comparator = createDefaultComparator();
13-
sortWithComparator(clients, comparator);
14-
}
8+
public abstract class AbstractMergeSortStrategy implements SortingStrategy {
159

1610
public void sortWithComparator(List<Client> clients, Comparator<Client> comparator) {
1711
if (clients == null || clients.size() <= 1) {
@@ -23,27 +17,9 @@ public void sortWithComparator(List<Client> clients, Comparator<Client> comparat
2317

2418
@Override
2519
public String getStrategyName() {
26-
return "Merge Sort (сортировка слиянием)";
20+
return "Abstract Merge Sort (сортировка слиянием)";
2721
}
2822

29-
private Comparator<Client> createDefaultComparator() {
30-
return new Comparator<Client>() {
31-
@Override
32-
public int compare(Client client1, Client client2) {
33-
int nameComparison = client1.getName().compareTo(client2.getName());
34-
if (nameComparison != 0) {
35-
return nameComparison;
36-
}
37-
38-
int idComparison = Integer.compare(client1.getIdNumber(), client2.getIdNumber());
39-
if (idComparison != 0) {
40-
return idComparison;
41-
}
42-
43-
return client1.getPhoneNumber().compareTo(client2.getPhoneNumber());
44-
}
45-
};
46-
}
4723
private void mergeSort(List<Client> clients, int left, int right,
4824
Comparator<Client> comparator) {
4925

@@ -100,7 +76,6 @@ private void merge(List<Client> clients, int left, int mid, int right,
10076
}
10177
}
10278

103-
@Override
10479
public void sortEvenValuesOnly(List<Client> clients, Comparator<Client> comparator) {
10580
if (clients == null || clients.isEmpty()) {
10681
return;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package sorting;
2+
3+
import dto.Client;
4+
5+
import java.util.Comparator;
6+
import java.util.List;
7+
8+
public class MergeSortDefaultStrategy extends AbstractMergeSortStrategy{
9+
10+
@Override
11+
public void sort(List<Client> clients) {
12+
Comparator<Client> comparator = createDefaultComparator();
13+
sortWithComparator(clients, comparator);
14+
}
15+
16+
private Comparator<Client> createDefaultComparator() {
17+
return new Comparator<Client>() {
18+
@Override
19+
public int compare(Client client1, Client client2) {
20+
int nameComparison = client1.getName().compareTo(client2.getName());
21+
if (nameComparison != 0) {
22+
return nameComparison;
23+
}
24+
25+
int idComparison = Integer.compare(client1.getIdNumber(), client2.getIdNumber());
26+
if (idComparison != 0) {
27+
return idComparison;
28+
}
29+
30+
return client1.getPhoneNumber().compareTo(client2.getPhoneNumber());
31+
}
32+
};
33+
}
34+
35+
@Override
36+
public String getStrategyName() {
37+
return "Merge Sort Default Strategy (сортировка по имени -> ID -> телефону)";
38+
}
39+
}

0 commit comments

Comments
 (0)