public E get(String key) {
    if (circle.isEmpty()) {
      return null;
    }

    Long hash = Long.valueOf(func.hash(key));
    if (circle.containsKey(hash)) {
      return get(hash);
    }

    Circle<E> tail = circle.tail(hash);
    if (tail.isEmpty()) {
      return get(circle.firstKey());
    }
    return get(tail.firstKey());
  }