Hej, z tej strony Cyckoben
Mam problem, napisałem uproszczoną Listę w Javie, ale nie działa, wyskakuje błąd: Exception in thread "main" java.util.NoSuchElementException
Mam metody addFirst, addLast, removeFirst, removeLast, getFirst, getLast, getAtIndex
Chyba jest błąd z dodawaniem albo usuwaniem
class List<E> {
private class Node<T> {
T object;
Node<T> previous;
Node<T> next;
Node(T object, Node<T> previous, Node<T> next) {
this.object = object;
this.previous = previous;
this.next = next;
}
}
private Node<E> first;
private Node<E> last;
private int size;
public List() {
first = null;
last = null;
size = 0;
}
public void addFirst(E object) {
Node<E> node = new Node<>(object, null, first);
if (first != null)
first.previous = node;
first = node;
++size;
}
public void addLast(E object) {
Node<E> node = new Node<>(object, last, null);
if (last != null)
last.next = node;
last = node;
++size;
}
public void removeFirst() {
if (first != null) {
first = first.next;
if (first != null)
first.previous = null;
--size;
}
}
public void removeLast() {
if (last != null) {
last = last.previous;
if (last != null)
last.next = null;
--size;
}
}
public E getFirst() {
if (first != null)
return first.object;
throw new NoSuchElementException();
}
public E getLast() {
if (last != null)
return last.object;
throw new NoSuchElementException();
}
public void clear() {
first = null;
last = null;
size = 0;
}
public int getSize() {
return size;
}
public boolean isEmpty() {
return size == 0;
}