Мне поручено создать метод, который добавляет к фронту (слева) ArrayDeque без использования библиотеки Deque. Я придумал метод, хотя он не добавляет в очередь, он выходит с пустым que. Вот мой метод AddLeft:Добавление к фронту ArrayDeque в Java
public T[] addLeft(T item){
T[] copyarr = (T[]) new Object[arr.length+1];
if(isEmpty()){
copyarr[frontPos] = item;
}else{
copyarr[frontPos] = item;
frontPos--;
for(int i = 1; i<copyarr.length; i++){
copyarr[i] = arr[i];
}
}
arr = copyarr;
return arr;
}
Вот тестовый код IV использовал:
public class DequeueTest {
public static void main(String[] args) {
Dequeue test = new Dequeue();
test.addLeft(3);
test.addLeft(4);
System.out.println(test.toString());
}
}
Любая идея, где я пошло не так?
Откуда берется «arr»? Однако вы вызываете addLeft в Dequeue, но результат addLeft просто изменяет 'arr', но не сам dequeue. – lschuetze
arr - массив, сначала инициализированный в конструкторе, который должен содержать все значения – Volken
Вы отлаживали, правильно ли значения 'FrontPos'? – lschuetze