import java.util.*;

public class CircularLinkedList
{
    public CircularLinkedList ()
    {
        _entries = new HashMap<Integer, Node>();
        _head = _tail = _current = null;
    }

    public void add (int value)
    {
        Node n = new Node(value);
        
        if (_head == null)
            _head = n;
        else
            _tail.setNext(n);

        _tail = n;
        _tail.setNext(_head);
    }

    private HashMap<Integer, Node> _entries;
    private Node _head;
    private Node _tail;
    private Node _current;
}
@@ -195,16 +195,178 @@
  public 
+final void Node getCurrent ()%0A    %7B%0A        return _current;%0A    %7D%0A%0A    public final void setCurrent (Node c)%0A    %7B%0A        _current = c;%0A    %7D%0A%0A    public final 
 void add
@@ -443,136 +443,344 @@
 if (
+_entries.size() == 0)%0A        %7B%0A            
 _head =
-=
  n
-ull)%0A            _head = n;%0A        else%0A            _tail.setNext(n);%0A%0A        _tail = n;%0A        _tail.setNext(_head
+;%0A            _tail = _head;%0A            _current = _head;%0A            _current.setNext(_head);%0A        %7D%0A        else%0A        %7B%0A            Node last = _tail;%0A%0A            last.setNext(n);%0A            n.setNext(_head);%0A            _tail = n;%0A        %7D%0A%0A        _entries.put(value, n
 );%0A 

Update CircularLinkedList.java