Итак, я пытаюсь создать динамический массив в Java.Для этого вопроса существует один основной массив с именем store, который имеет определенный размер.Внутри хранилища находится своего рода псевдомассив, который использует кусок хранилища в качестве динамического массива.Левая и правая переменные - это индексы, которые служат головкой и хвостом для динамического массива соответственно.Это означает, что значение left - это индекс, с которого начинается динамический массив в хранилище, а right - это конец.
Я пытался сделать для этого методы addleft и addright, но я продолжаю выходитьграниц ошибок.Тем не менее, я не уверен, где именно я ошибся.
boolean add(int i, int x){
if (i<0 || i>size) return false;
if (i<size-i)
addLeft(i,x);
else
addRight(i,x);
return true;
}//add
void addLeft(int i, int x){
size ++;
left--;
if(left == -1) {
restore();
}
for(int j = left; j < left + i; j++) {
store[j] = store[j+1];
}
store[left + 1 + i] = x;
return;
}//addLeft
void addRight(int i, int x){
size ++;
right++;
if(right == CAP+1) {
restore();
}
for(int j = right; j > left + i; j--) {
store[j] = store[j-1];
}
store[left + 1 + i] = x;
return;
}//addRight
В результате я ищу целое число, введенное для вставки в индекс, а затем значения слева (дляaddleft) или вправо (для addright), чтобы сместиться в их соответствующих направлениях.Метод restore () используется для расширения массива хранилищ всякий раз, когда одна сторона динамического массива достигает конца.