Skip to content

Commit 75e5914

Browse files
committed
patch
1 parent c13d06c commit 75e5914

5 files changed

Lines changed: 76 additions & 23 deletions

File tree

src/ru/javawebinar/basejava/MainArray.java

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

33
import ru.javawebinar.basejava.model.Resume;
44
import ru.javawebinar.basejava.storage.ArrayStorage;
5+
import ru.javawebinar.basejava.storage.Storage;
56

67
/**
78
*

src/ru/javawebinar/basejava/model/Resume.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/**
44
* ru.javawebinar.basejava.model.Resume class
55
*/
6-
public class Resume {
6+
public class Resume implements Comparable<Resume>{
77

88
// Unique identifier
99
private String uuid;
@@ -35,4 +35,9 @@ public int hashCode() {
3535
public String toString() {
3636
return uuid;
3737
}
38+
39+
@Override
40+
public int compareTo(Resume o) {
41+
return uuid.compareTo(o.uuid);
42+
}
3843
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package ru.javawebinar.basejava.storage;
2+
3+
import ru.javawebinar.basejava.model.Resume;
4+
5+
/**
6+
* Array based storage for Resumes
7+
*/
8+
public abstract class AbstractArrayStorage implements Storage {
9+
protected static final int STORAGE_LIMIT = 10000;
10+
11+
protected Resume[] storage = new Resume[STORAGE_LIMIT];
12+
protected int size = 0;
13+
14+
public int size() {
15+
return size;
16+
}
17+
18+
public Resume get(String uuid) {
19+
int index = getIndex(uuid);
20+
if (index == -1) {
21+
System.out.println("Resume " + uuid + " not exist");
22+
return null;
23+
}
24+
return storage[index];
25+
}
26+
27+
protected abstract int getIndex(String uuid);
28+
}

src/ru/javawebinar/basejava/storage/ArrayStorage.java

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,11 @@
77
/**
88
* Array based storage for Resumes
99
*/
10-
public class ArrayStorage implements Storage{
11-
12-
private static final int STORAGE_LIMIT = 10000;
13-
14-
private Resume[] storage = new Resume[STORAGE_LIMIT];
15-
private int size = 0;
10+
public class ArrayStorage extends AbstractArrayStorage {
1611

1712
public void clear() {
1813
Arrays.fill(storage, 0, size, null);
1914
size = 0;
20-
2115
}
2216

2317
public void update(Resume r) {
@@ -40,15 +34,6 @@ public void save(Resume r) {
4034
}
4135
}
4236

43-
public Resume get(String uuid) {
44-
int index = getIndex(uuid);
45-
if (index == -1) {
46-
System.out.println("Resume " + uuid + " not exist");
47-
return null;
48-
}
49-
return storage[index];
50-
}
51-
5237
public void delete(String uuid) {
5338
int index = getIndex(uuid);
5439
if (index == -1) {
@@ -66,17 +51,12 @@ public Resume[] getAll() {
6651

6752
}
6853

69-
public int size() {
70-
return size;
71-
}
72-
73-
private int getIndex(String uuid) {
54+
protected int getIndex(String uuid) {
7455
for (int i = 0; i < size; i++) {
7556
if (uuid.equals(storage[i].getUuid())) {
7657
return i;
7758
}
7859
}
7960
return -1;
8061
}
81-
8262
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package ru.javawebinar.basejava.storage;
2+
3+
import ru.javawebinar.basejava.model.Resume;
4+
5+
import java.util.Arrays;
6+
7+
public class SortedArrayStorage extends AbstractArrayStorage{
8+
@Override
9+
public void clear() {
10+
11+
}
12+
13+
@Override
14+
public void update(Resume r) {
15+
16+
}
17+
18+
@Override
19+
public void save(Resume r) {
20+
21+
}
22+
23+
@Override
24+
public void delete(String uuid) {
25+
26+
}
27+
28+
@Override
29+
public Resume[] getAll() {
30+
return new Resume[0];
31+
}
32+
33+
@Override
34+
protected int getIndex(String uuid) {
35+
Resume searchKey = new Resume();
36+
searchKey.setUuid(uuid);
37+
return Arrays.binarySearch(storage, 0, size, searchKey);
38+
}
39+
}

0 commit comments

Comments
 (0)