Package org.h2.mvstore
Class Cursor<K,V>
- java.lang.Object
-
- org.h2.mvstore.Cursor<K,V>
-
- Type Parameters:
K
- the key typeV
- the value type
- All Implemented Interfaces:
java.util.Iterator<K>
public final class Cursor<K,V> extends java.lang.Object implements java.util.Iterator<K>
A cursor to iterate over elements in ascending or descending order.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description K
getKey()
Get the last read key if there was one.(package private) Page<K,V>
getPage()
Get the page where last retrieved key is located.V
getValue()
Get the last read value if there was one.boolean
hasNext()
K
next()
void
skip(long n)
Skip over that many entries.(package private) static <K,V>
CursorPos<K,V>traverseDown(Page<K,V> page, K key, boolean reverse)
Fetch the next entry that is equal or larger than the given key, starting from the given page.private static <K,V>
intupperBound(Page<K,V> page)
-
-
-
Constructor Detail
-
Cursor
public Cursor(RootReference<K,V> rootReference, K from, K to)
-
Cursor
public Cursor(RootReference<K,V> rootReference, K from, K to, boolean reverse)
- Parameters:
rootReference
- of the treefrom
- starting key (inclusive), if null start from the first / last keyto
- ending key (inclusive), if null there is no boundaryreverse
- true if tree should be iterated in key's descending order
-
-
Method Detail
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<K>
-
getKey
public K getKey()
Get the last read key if there was one.- Returns:
- the key or null
-
getValue
public V getValue()
Get the last read value if there was one.- Returns:
- the value or null
-
skip
public void skip(long n)
Skip over that many entries. This method is relatively fast (for this map implementation) even if many entries need to be skipped.- Parameters:
n
- the number of entries to skip
-
traverseDown
static <K,V> CursorPos<K,V> traverseDown(Page<K,V> page, K key, boolean reverse)
Fetch the next entry that is equal or larger than the given key, starting from the given page. This method returns the path.- Type Parameters:
K
- key typeV
- value type- Parameters:
page
- to start from as a rootkey
- to search for, null means search for the first available keyreverse
- true if traversal is in reverse direction, false otherwise- Returns:
- CursorPos representing path from the entry found, or from insertion point if not, all the way up to to the root page provided
-
upperBound
private static <K,V> int upperBound(Page<K,V> page)
-
-