SentinelIntSet

open class SentinelIntSet(size: Int, val emptyVal: Int)

A native int hash-based set where one value is reserved to mean "EMPTY" internally. The space overhead is fairly low as there is only one power-of-two sized int[] to hold the values. The set is re-hashed when adding a value that would make it >= 75% full. Consider extending and over-riding hash if the values might be poor hash keys; Lucene docids should be fine. The internal fields are exposed publicly to enable more efficient use at the expense of better O-O principles.

To iterate over the integers held in this set, simply use code like this:

SentinelIntSet set = ...
for (int v : set.keys) {
if (v == set.emptyVal)
continue;
//use v...
}

Constructors

Link copied to clipboard
constructor(size: Int, emptyVal: Int)

Properties

Link copied to clipboard
var count: Int
Link copied to clipboard
Link copied to clipboard

A power-of-2 over-sized array holding the integers in the set along with empty values.

Link copied to clipboard

the count at which a rehash should be done

Functions

Link copied to clipboard
fun clear()
Link copied to clipboard
fun exists(key: Int): Boolean

Does this set contain the specified integer?

Link copied to clipboard
fun find(key: Int): Int

(internal) Returns the slot for this key, or -slot-1 if not found

Link copied to clipboard
fun getSlot(key: Int): Int

(internal) Returns the slot for this key

Link copied to clipboard
open fun hash(key: Int): Int

(internal) Return the hash for the key. The default implementation just returns the key, which is not appropriate for general purpose use.

Link copied to clipboard
fun put(key: Int): Int

Puts this integer (key) in the set, and returns the slot index it was added to. It rehashes if adding it would make the set more than 75% full.

Link copied to clipboard

Return the memory footprint of this class in bytes.

Link copied to clipboard
fun rehash()

(internal) Rehashes by doubling int[] key and filling with the old values.

Link copied to clipboard
fun size(): Int

The number of integers in this set.