-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNumberArrayImpl.java
More file actions
101 lines (81 loc) · 2.24 KB
/
NumberArrayImpl.java
File metadata and controls
101 lines (81 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.yurii.salimov.lesson03.task03;
import java.util.Arrays;
import java.util.Scanner;
public final class NumberArrayImpl implements NumberArray {
private final Scanner scanner;
private final int[] numbers;
private int[] firstNumbers;
private int[] lastNumbers;
public NumberArrayImpl(final int arrayLength) {
this.scanner = new Scanner(System.in);
this.numbers = new int[arrayLength];
this.firstNumbers = new int[arrayLength / 2];
this.lastNumbers = new int[arrayLength - arrayLength / 2];
}
@Override
public void read() {
for (int i = 0; i < this.numbers.length; i++) {
this.numbers[i] = readNumber();
}
}
@Override
public void split() {
copyFirstPart();
copyLastPart();
}
@Override
public void sort() {
sort(this.numbers);
}
@Override
public void sortFirstPart() {
sort(this.firstNumbers);
}
@Override
public void sortLastPart() {
sort(this.lastNumbers);
}
@Override
public void print() {
printNumbers(this.numbers);
}
@Override
public void printFirstPart() {
printNumbers(this.firstNumbers);
}
@Override
public void printLastPart() {
printNumbers(this.lastNumbers);
}
@Override
public int[] get() {
return this.numbers;
}
@Override
public int[] getFirstPart() {
return this.firstNumbers;
}
@Override
public int[] getLastPart() {
return this.lastNumbers;
}
private int readNumber() {
return this.scanner.nextInt();
}
private void sort(final int[] numbers) {
Arrays.sort(numbers);
}
private void printNumbers(final int[] numbers) {
System.out.println(Arrays.toString(numbers));
}
private void copyFirstPart() {
final int fromIndex = 0;
final int toIndex = this.numbers.length / 2;
this.firstNumbers = Arrays.copyOfRange(this.numbers, fromIndex, toIndex);
}
private void copyLastPart() {
final int fromIndex = this.numbers.length / 2;
final int toIndex = this.numbers.length;
this.lastNumbers = Arrays.copyOfRange(this.numbers, fromIndex, toIndex);
}
}