Package avail.descriptor.sets

Types

Link copied to clipboard
interface A_Set : A_BasicObject, Iterable<AvailObject>

A_Set is an interface that specifies the set-specific operations that an AvailObject must implement. It's a sub-interface of A_BasicObject, the interface that defines the behavior that all AvailObjects are required to support.

Link copied to clipboard
interface A_SetBin : A_BasicObject

A_SetBin is a collection of values which are part of a set.

Link copied to clipboard
class HashedSetBinDescriptor : SetBinDescriptor

This class implements the internal hashed nodes of a Bagwell Ideal Hash Tree. It's similar to HashedMapBinDescriptor, but has operations suitable for use by a set rather than a map.

Link copied to clipboard
class LinearSetBinDescriptor : SetBinDescriptor

A LinearSetBinDescriptor] is a leaf bin in a set's hierarchy of bins. It consists of a small number of distinct elements in no particular order. If more elements need to be stored, a hashed bin will be used instead.

Link copied to clipboard
abstract class SetBinDescriptor : Descriptor

This abstract class organizes the idea of nodes in a Bagwell Ideal Hash Tree used to implement hashed maps.

Link copied to clipboard
class SetDescriptor : Descriptor

An Avail set refers to the root of a Bagwell Ideal Hash Tree. If the set is empty, the root is nil, which may not be a member of a set. If the set has one element, the root is the element itself. If the set has two or more elements then a bin must be used. There are two types of bin, the linear bin and the hashed bin. The linear bin is used below a threshold size, after which a hashed bin is substituted. The linear bin simply contains an arbitrarily ordered list of elements, which are examined exhaustively when testing set membership. The hashed bin uses up to five bits of an element's hash value to partition the set. The depth of the bin in the hash tree determines which hash bits are used.