com.sleepycat.collections

## Class StoredKeySet<K>

- java.lang.Object
- - com.sleepycat.collections.StoredContainer
  - - com.sleepycat.collections.StoredCollection<K>
    - - com.sleepycat.collections.StoredKeySet<K>

All Implemented Interfaces:
  java.lang.Cloneable, java.lang.Iterable<K>, java.util.Collection<K>, java.util.Set<K>

Direct Known Subclasses:
  StoredSortedKeySet

    public class StoredKeySet<K>
    extends StoredCollection<K>
    implements java.util.Set<K>

The Set returned by Map.keySet() and which can also be constructed directly if a Map is not needed. Since this collection is a set it only contains one element for each key, even when duplicates are allowed. Key set iterators are therefore particularly useful for enumerating the unique keys of a store or index that allows duplicates.

### Field Summary

### Fields inherited from class com.sleepycat.collections.StoredCollection

`DEFAULT_ITERATOR_BLOCK_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`StoredKeySet(Database database, EntryBinding<K> keyBinding, boolean writeAllowed)` Creates a key set view of a `Database`.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `add(K key)` Adds the specified key to this set if it is not already present (optional operation).
`boolean` `contains(java.lang.Object key)` Returns true if this set contains the specified key.
`boolean` `remove(java.lang.Object key)` Removes the specified key from this set if it is present (optional operation).

### Methods inherited from class com.sleepycat.collections.StoredCollection

`addAll, containsAll, equals, getIteratorBlockSize, hashCode, iterator, iterator, join, removeAll, retainAll, setIteratorBlockSize, size, storedIterator, storedIterator, toArray, toArray, toList, toString`

### Methods inherited from class com.sleepycat.collections.StoredContainer

`areDuplicatesAllowed, areDuplicatesOrdered, areKeyRangesAllowed, areKeysRenumbered, clear, getCursorConfig, isEmpty, isOrdered, isSecondary, isTransactional, isWriteAllowed`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Set

`addAll, clear, containsAll, equals, hashCode, isEmpty, iterator, removeAll, retainAll, size, spliterator, toArray, toArray`

### Methods inherited from interface java.util.Collection

`parallelStream, removeIf, stream`

### Methods inherited from interface java.lang.Iterable

`forEach`

### Constructor Detail

#### StoredKeySet

    public StoredKeySet(Database database,
                        EntryBinding<K> keyBinding,
                        boolean writeAllowed)

Creates a key set view of a `Database`.

Parameters:
  `database` - is the Database underlying the new collection.
  `keyBinding` - is the binding used to translate between key buffers and key objects.
  `writeAllowed` - is true to create a read-write collection or false to create a read-only collection.
Throws:
  `java.lang.IllegalArgumentException` - if formats are not consistently defined or a parameter is invalid.
  `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C Edition).

### Method Detail

#### add

    public boolean add(K key)

Adds the specified key to this set if it is not already present (optional operation). This method conforms to the `Set.add(E)` interface.

WARNING: When a key is added the value in the underlying data store will be empty, i.e., the byte array will be zero length. Such a record cannot be accessed using the Map interface unless the value binding supports zero length byte arrays.

Specified by:
  `add` in interface `java.util.Collection<K>`
Specified by:
  `add` in interface `java.util.Set<K>`
Throws:
  `java.lang.UnsupportedOperationException` - if the collection is indexed, or if the collection is read-only.
  `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C Edition).

#### remove

    public boolean remove(java.lang.Object key)

Removes the specified key from this set if it is present (optional operation). If duplicates are allowed, this method removes all duplicates for the given key. This method conforms to the `Set.remove(java.lang.Object)` interface.

Specified by:
  `remove` in interface `java.util.Collection<K>`
Specified by:
  `remove` in interface `java.util.Set<K>`
Throws:
  `java.lang.UnsupportedOperationException` - if the collection is read-only.
  `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C Edition).

#### contains

    public boolean contains(java.lang.Object key)

Returns true if this set contains the specified key. This method conforms to the `Set.contains(java.lang.Object)` interface.

Specified by:
  `contains` in interface `java.util.Collection<K>`
Specified by:
  `contains` in interface `java.util.Set<K>`
Throws:
  `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C Edition).