public void remove(E e) { for (int i = 0; i < replicas; ++i) { Long hash = Long.valueOf(func.hash(e.toString() + i)); circle.remove(hash); } values.remove(e); }
public void add(E e) { for (int i = 0; i < replicas; ++i) { Long hash = Long.valueOf(func.hash(e.toString() + i)); circle.put(hash, e); } values.add(e); }
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()); }
protected E get(Long key) { return circle.get(key); }