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
    Modifier and Type | Method and Description
    --- | ---
    `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).

Copyright (c) 1996, 2017 Oracle and/or its affiliates. All rights reserved.