From 5cd8113eae72714ea3e084d00bd2a97fe4fbdcc1 Mon Sep 17 00:00:00 2001 From: MyTestGitRoman Date: Sat, 12 Jun 2021 12:05:50 +0300 Subject: [PATCH 1/2] add service clear in class arrayStorage --- src/ArrayStorage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ArrayStorage.java b/src/ArrayStorage.java index 7aff0388..0195b52d 100644 --- a/src/ArrayStorage.java +++ b/src/ArrayStorage.java @@ -5,6 +5,7 @@ public class ArrayStorage { Resume[] storage = new Resume[10000]; void clear() { + storage = new Resume[10000]; } void save(Resume r) { From 4d26e049473f1fa2dbd5db9d80a280517061278a Mon Sep 17 00:00:00 2001 From: MyTestGitRoman Date: Sat, 12 Jun 2021 13:53:06 +0300 Subject: [PATCH 2/2] implementation --- src/ArrayStorage.java | 61 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/src/ArrayStorage.java b/src/ArrayStorage.java index 0195b52d..2e12563a 100644 --- a/src/ArrayStorage.java +++ b/src/ArrayStorage.java @@ -5,27 +5,80 @@ public class ArrayStorage { Resume[] storage = new Resume[10000]; void clear() { - storage = new Resume[10000]; + for (int i = 0; i < storage.length; i++) { + + //Дошли до конца заполненных данных - прервем цикл + if (storage[i] == null){ + break; + } + + storage[i] = null; + } } void save(Resume r) { + + //Нужно найти свободную позицию если таковой не нашлось то будет Исключение. + for (int i = 0; i < storage.length; i++) { + if (storage[i] == null){ + storage[i] = r; + return; + } + } + throw new ArrayIndexOutOfBoundsException("Maximum storage value reached!"); } Resume get(String uuid) { - return null; + + Resume findResume = null; + for (int i = 0; i < storage.length; i++) { + if (storage[i] != null) { + if (storage[i].uuid.equals(uuid)) { + findResume = storage[i]; + break; + } + } + } + return findResume; } void delete(String uuid) { + + //Поиск по всем ЗАПОЛНЕННЫМ элементам - используем size + for (int i = 0; i < size(); i++) { + + if (storage[i].uuid.equals(uuid)) { + + //Заполним пустоту последним существующим элементом + storage[i] = storage[size()-1]; + + //И затрем значение послднего - т.к. переместили его в позицию удаленного элемента + storage[size()-1] = null; + } + + } } /** * @return array, contains only Resumes in storage (without null) */ Resume[] getAll() { - return new Resume[0]; + Resume[] resumes = new Resume[size()]; + + for (int i = 0; i < resumes.length; i++) { + resumes[i] = storage[i]; + } + + return resumes; } int size() { - return 0; + + for (int i = 0; i < storage.length; i++) { + if (storage[i] == null){ + return i; + } + } + return storage.length; } }