See More

/** * Array based storage for Resumes */ public class ArrayStorage { private final int capasity = 10000; private int size; Resume[] storage = new Resume[capasity]; void clear() { // Обход всех элементов массива for (int i = 0; i < size; i++) { //присвоение всем элементам null storage[i] = null; } //обнуление счетчика заполненных ячеек size = 0; } void save(Resume r) { //если массив заолнен, тогда выйти из метода if (size >= capasity) { return; } //добавление резюме в массив storage[size] = r; //увеличение размера на 1 size++; } Resume get(String uuid) { //обход всех элементов массива for (int i = 0; i < size; i++) { //если uuid текущего элемента равен заданному, то вернуть его if (storage[i].uuid.equals(uuid)) { return storage[i]; } } return null; } void delete(String uuid) { int idx = -1; //обход всех элементов массива for (int i = 0; i < size; i++) { //если uuid текущего элемента равен заданному, то if (storage[i].uuid.equals(uuid)) { //присвоение значения позиции удаленного из массива резюме idx = i; //выход из цикла break; } } //если значение idx стало больше чем -1, то if (idx > -1) { //смещаем все элементы массива for (int i = idx; i < size - 1; i++) { storage[i] = storage[i + 1]; } //обнуляем последний элемент storage[size - 1] = null; //уменьшаем размер на 1 size--; } } /** * @return array, contains only Resumes in storage (without null) */ Resume[] getAll() { //создание нового массива с резюме с размером реально заполненных элементов Resume[] resumes = new Resume[size]; //добавление всех резюме в новый массив for (int i = 0; i < size; i++) { resumes[i] = storage[i]; } return resumes; } int size() { return size; } }