Package ghidra.util.datastruct
Class RedBlackLongKeySet
- java.lang.Object
-
- ghidra.util.datastruct.RedBlackLongKeySet
-
- All Implemented Interfaces:
java.io.Serializable
public class RedBlackLongKeySet extends java.lang.Object implements java.io.Serializable
A RedBlack Tree implementation of a long key set.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
NODESIZE
the number of bytes in a RedBlackLongKeySet node
-
Constructor Summary
Constructors Constructor Description RedBlackLongKeySet()
Creates a new RedBlackLongKeySet that can store keys between 0 and n.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsKey(long key)
Returns true if the key is in the set.long
getFirst()
Returns the first key in this set.long
getLast()
Returns the last key in this set.long
getNext(long key)
Returns the smallest key in the set that is greater than the given key.long
getPrevious(long key)
Returns the largest key in the set that is less than the given key.boolean
isEmpty()
Test if the set is empty.void
put(long key)
Adds the given key to the set.boolean
remove(long key)
Removes the given key from the set.void
removeAll()
Removes all keys from the set.int
size()
Returns the number keys in this set.
-
-
-
Field Detail
-
NODESIZE
public static final int NODESIZE
the number of bytes in a RedBlackLongKeySet node- See Also:
- Constant Field Values
-
-
Method Detail
-
size
public int size()
Returns the number keys in this set.
-
containsKey
public boolean containsKey(long key)
Returns true if the key is in the set.- Parameters:
key
- the key whose presence is to be tested.- Throws:
java.lang.IndexOutOfBoundsException
- thrown if the given key is not in the range [0, maxKey].
-
getFirst
public long getFirst()
Returns the first key in this set.
-
getLast
public long getLast()
Returns the last key in this set.
-
getNext
public long getNext(long key)
Returns the smallest key in the set that is greater than the given key. Returns -1 if there are no keys greater than the given key.- Parameters:
key
- the key for which to find the next key after.- Throws:
java.lang.IndexOutOfBoundsException
- thrown if the given key is not in the range [0, maxKey].
-
getPrevious
public long getPrevious(long key)
Returns the largest key in the set that is less than the given key. Returns -1 if there are not keys less than the given key.- Parameters:
key
- the key for which to find the previous key.- Throws:
java.lang.IndexOutOfBoundsException
- thrown if the given key is not in the range [0, maxKey].
-
put
public void put(long key)
Adds the given key to the set.- Parameters:
key
- the key to add to the set.- Throws:
java.lang.IndexOutOfBoundsException
- thrown if the given key is not in the range [0, maxKey].
-
remove
public boolean remove(long key)
Removes the given key from the set.- Parameters:
key
- the key to remove from the set.- Throws:
java.lang.IndexOutOfBoundsException
- thrown if the given key is not in the range [0, maxKey].
-
removeAll
public void removeAll()
Removes all keys from the set.
-
isEmpty
public boolean isEmpty()
Test if the set is empty.- Returns:
- true if the set is empty.
-
-