net.metanotion.util.skiplist
Class SkipList
java.lang.Object
net.metanotion.util.skiplist.SkipList
- All Implemented Interfaces:
- Flushable
- Direct Known Subclasses:
- BSkipList
public class SkipList
- extends Object
- implements Flushable
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
P
protected static final int P
- the probability of each next higher level
- See Also:
- Constant Field Values
first
protected SkipSpan first
stack
protected SkipLevels stack
rng
public static final Random rng
size
protected int size
SkipList
protected SkipList()
SkipList
public SkipList(int span)
flush
public void flush()
- Specified by:
flush
in interface Flushable
size
public int size()
addItem
public void addItem()
delItem
public void delItem()
maxLevels
public int maxLevels()
- Returns:
- 4 since we don't track span count here any more - see override
Fix if for some reason you want a huge in-memory skiplist.
generateColHeight
public int generateColHeight()
- Returns:
- 0..maxLevels(), each successive one with probability 1 / P
put
public void put(Comparable key,
Object val)
remove
public Object remove(Comparable key)
printSL
public void printSL()
- Deprecated. goes to System.out
- dumps all the skip levels
print
public void print()
- Deprecated. goes to System.out
- dumps all the data
get
public Object get(Comparable key)
iterator
public SkipIterator iterator()
min
public SkipIterator min()
max
public SkipIterator max()
find
public SkipIterator find(Comparable key)
- Returns:
- an iterator where nextKey() is the first one greater than or equal to 'key'
balance
public void balance()