// Remove and return current element public Object remove () { if (curr == tail) return null; // Nothing to remove Object it = curr.element(); // Remember value curr.setelement(curr.next().element()); // Pull forward the next element if (curr.next() == tail) tail = curr; // Removed last, move tail curr.setnext(curr.next().next()); // Point around unneeded link listSize--; // Decrement element count return it; // Return value }
// Append "it" to list public void append(Object it) { tail.setnext(new Link(null)); tail.setelement(it); tail = tail.next(); listSize++; }
// Insert "it" at current position public void insert(Object it) { curr.setnext(new Link(curr.element(), curr.next())); curr.setelement(it); if (tail == curr) tail = curr.next(); // New tail listSize++; }