StoredSortedKeySet (Oracle - Berkeley DB Java Edition API)
Date: 2014-12-16

com.sleepycat.collections

## Class StoredSortedKeySet<K>

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

- All Implemented Interfaces:
    Cloneable, Iterable<K>, Collection<K>, Set<K>, SortedSet<K>

      public class StoredSortedKeySet<K>
      extends StoredKeySet<K>
      implements SortedSet<K>

  The SortedSet 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.

  In addition to the standard SortedSet methods, this class provides the following methods for stored sorted sets only. Note that the use of these methods is not compatible with the standard Java collections interface.

  - `headSet(Object, boolean)`
  - `tailSet(Object, boolean)`
  - `subSet(Object, boolean, Object, boolean)`
  Author:
    Mark Hayes

- - ### Field Summary

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

      `DEFAULT_ITERATOR_BLOCK_SIZE`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Comparator<? super K>` | `comparator()` Returns null since comparators are not supported.
    `K` | `first()` Returns the first (lowest) element currently in this sorted set.
    `SortedSet<K>` | `headSet(K toKey)` Returns a view of the portion of this sorted set whose elements are strictly less than toKey.
    `SortedSet<K>` | `headSet(K toKey, boolean toInclusive)` Returns a view of the portion of this sorted set whose elements are strictly less than toKey, optionally including toKey.
    `K` | `last()` Returns the last (highest) element currently in this sorted set.
    `SortedSet<K>` | `subSet(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)` Returns a view of the portion of this sorted set whose elements are strictly greater than fromKey and strictly less than toKey, optionally including fromKey and toKey.
    `SortedSet<K>` | `subSet(K fromKey, K toKey)` Returns a view of the portion of this sorted set whose elements range from fromKey, inclusive, to toKey, exclusive.
    `SortedSet<K>` | `tailSet(K fromKey)` Returns a view of the portion of this sorted set whose elements are greater than or equal to fromKey.
    `SortedSet<K>` | `tailSet(K fromKey, boolean fromInclusive)` Returns a view of the portion of this sorted set whose elements are strictly greater than fromKey, optionally including fromKey.

    - ### Methods inherited from class com.sleepycat.collections.StoredKeySet

      `add, contains, remove`

    - ### 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

      `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray`

- - ### Constructor Detail

    - #### StoredSortedKeySet

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

      Creates a sorted 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:
        `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

    - #### comparator

          public Comparator<? super K> comparator()

      Returns null since comparators are not supported. The natural ordering of a stored collection is data byte order, whether the data classes implement the `Comparable` interface or not. This method does not conform to the `SortedSet.comparator()` interface.
      Specified by:
        `comparator` in interface `SortedSet<K>`
      Returns:
        null.

    - #### first

          public K first()

      Returns the first (lowest) element currently in this sorted set. This method conforms to the `SortedSet.first()` interface.
      Specified by:
        `first` in interface `SortedSet<K>`
      Returns:
        the first element.
      Throws:
        `OperationFailureException` - if one of the Read Operation Failures occurs.
        `EnvironmentFailureException` - if an unexpected, internal or environment-wide failure occurs.
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### last

          public K last()

      Returns the last (highest) element currently in this sorted set. This method conforms to the `SortedSet.last()` interface.
      Specified by:
        `last` in interface `SortedSet<K>`
      Returns:
        the last element.
      Throws:
        `OperationFailureException` - if one of the Read Operation Failures occurs.
        `EnvironmentFailureException` - if an unexpected, internal or environment-wide failure occurs.
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### headSet

          public SortedSet<K> headSet(K toKey)

      Returns a view of the portion of this sorted set whose elements are strictly less than toKey. This method conforms to the `SortedSet.headSet(E)` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Specified by:
        `headSet` in interface `SortedSet<K>`
      Parameters:
        `toKey` - is the upper bound.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### headSet

          public SortedSet<K> headSet(K toKey,
                             boolean toInclusive)

      Returns a view of the portion of this sorted set whose elements are strictly less than toKey, optionally including toKey. This method does not exist in the standard `SortedSet` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Parameters:
        `toKey` - is the upper bound.
        `toInclusive` - is true to include toKey.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### tailSet

          public SortedSet<K> tailSet(K fromKey)

      Returns a view of the portion of this sorted set whose elements are greater than or equal to fromKey. This method conforms to the `SortedSet.tailSet(E)` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Specified by:
        `tailSet` in interface `SortedSet<K>`
      Parameters:
        `fromKey` - is the lower bound.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### tailSet

          public SortedSet<K> tailSet(K fromKey,
                             boolean fromInclusive)

      Returns a view of the portion of this sorted set whose elements are strictly greater than fromKey, optionally including fromKey. This method does not exist in the standard `SortedSet` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Parameters:
        `fromKey` - is the lower bound.
        `fromInclusive` - is true to include fromKey.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### subSet

          public SortedSet<K> subSet(K fromKey,
                            K toKey)

      Returns a view of the portion of this sorted set whose elements range from fromKey, inclusive, to toKey, exclusive. This method conforms to the `SortedSet.subSet(E, E)` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Specified by:
        `subSet` in interface `SortedSet<K>`
      Parameters:
        `fromKey` - is the lower bound.
        `toKey` - is the upper bound.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

    - #### subSet

          public SortedSet<K> subSet(K fromKey,
                            boolean fromInclusive,
                            K toKey,
                            boolean toInclusive)

      Returns a view of the portion of this sorted set whose elements are strictly greater than fromKey and strictly less than toKey, optionally including fromKey and toKey. This method does not exist in the standard `SortedSet` interface.

      Note that the return value is a StoredCollection and must be treated as such; for example, its iterators must be explicitly closed.

      Parameters:
        `fromKey` - is the lower bound.
        `fromInclusive` - is true to include fromKey.
        `toKey` - is the upper bound.
        `toInclusive` - is true to include toKey.
      Returns:
        the subset.
      Throws:
        `RuntimeExceptionWrapper` - if a checked exception is thrown, including a `DatabaseException` on BDB (C edition).

Copyright (c) 2004, 2014 Oracle and/or its affiliates. All rights reserved.