Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/java/util/SortedSet#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/SortedSet#inhmethods)

# SortedSet


`
public


interface
SortedSet
`


`


implements

https://developer.android.com/reference/java/util/SequencedSet<E>,

https://developer.android.com/reference/java/util/Set<E>


`

|---|
| java.util.SortedSet\<E\> |

|---|
| Known indirect subclasses [ConcurrentSkipListSet](https://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListSet)\<E\>, [NavigableSet](https://developer.android.com/reference/java/util/NavigableSet)\<E\>, [TreeSet](https://developer.android.com/reference/java/util/TreeSet)\<E\> |---|---| | [ConcurrentSkipListSet](https://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListSet)\<E\> | A scalable concurrent `https://developer.android.com/reference/java/util/NavigableSet` implementation based on a `https://developer.android.com/reference/java/util/concurrent/ConcurrentSkipListMap`. | | [NavigableSet](https://developer.android.com/reference/java/util/NavigableSet)\<E\> | A `https://developer.android.com/reference/java/util/SortedSet` extended with navigation methods reporting closest matches for given search targets. | | [TreeSet](https://developer.android.com/reference/java/util/TreeSet)\<E\> | A `https://developer.android.com/reference/java/util/NavigableSet` implementation based on a `https://developer.android.com/reference/java/util/TreeMap`. | |

<br />

*** ** * ** ***

A `https://developer.android.com/reference/java/util/Set` that further provides a *total ordering* on its elements.
The elements are ordered using their [natural
ordering](https://developer.android.com/reference/java/lang/Comparable), or by a `https://developer.android.com/reference/java/util/Comparator` typically provided at sorted
set creation time. The set's iterator will traverse the set in
ascending element order. Several additional operations are provided
to take advantage of the ordering. (This interface is the set
analogue of `https://developer.android.com/reference/java/util/SortedMap`.)

All elements inserted into a sorted set must implement the `Comparable`
interface (or be accepted by the specified comparator). Furthermore, all
such elements must be *mutually comparable*: `e1.compareTo(e2)`
(or `comparator.compare(e1, e2)`) must not throw a
`ClassCastException` for any elements `e1` and `e2` in
the sorted set. Attempts to violate this restriction will cause the
offending method or constructor invocation to throw a
`ClassCastException`.

Note that the ordering maintained by a sorted set (whether or not an
explicit comparator is provided) must be *consistent with equals* if
the sorted set is to correctly implement the `Set` interface. (See
the `Comparable` interface or `Comparator` interface for a
precise definition of *consistent with equals*.) This is so because
the `Set` interface is defined in terms of the `equals`
operation, but a sorted set performs all element comparisons using its
`compareTo` (or `compare`) method, so two elements that are
deemed equal by this method are, from the standpoint of the sorted set,
equal. The behavior of a sorted set *is* well-defined even if its
ordering is inconsistent with equals; it just fails to obey the general
contract of the `Set` interface.

All general-purpose sorted set implementation classes should
provide four "standard" constructors: 1) A void (no arguments)
constructor, which creates an empty sorted set sorted according to
the natural ordering of its elements. 2) A constructor with a
single argument of type `Comparator`, which creates an empty
sorted set sorted according to the specified comparator. 3) A
constructor with a single argument of type `Collection`,
which creates a new sorted set with the same elements as its
argument, sorted according to the natural ordering of the elements.
4) A constructor with a single argument of type `SortedSet`,
which creates a new sorted set with the same elements and the same
ordering as the input sorted set. There is no way to enforce this
recommendation, as interfaces cannot contain constructors.

Note: several methods return subsets with restricted ranges.
Such ranges are *half-open*, that is, they include their low
endpoint but not their high endpoint (where applicable).
If you need a *closed range* (which includes both endpoints), and
the element type allows for calculation of the successor of a given
value, merely request the subrange from `lowEndpoint` to
`successor(highEndpoint)`. For example, suppose that `s`
is a sorted set of strings. The following idiom obtains a view
containing all of the strings in `s` from `low` to
`high`, inclusive:

```
  SortedSet<String> sub = s.subSet(low, high+"\0");
```
A similar technique can be used to generate an *open range* (which contains neither endpoint). The following idiom obtains a view containing all of the Strings in `s` from `low` to `high`, exclusive:

```
  SortedSet<String> sub = s.subSet(low+"\0", high);
```

This interface is a member of the
[Java Collections Framework](https://reference/java/util/package-summary.html#CollectionsFramework).
**See also:**

- `https://developer.android.com/reference/java/util/Set`
- `https://developer.android.com/reference/java/util/TreeSet`
- `https://developer.android.com/reference/java/util/SortedMap`
- `https://developer.android.com/reference/java/util/Collection`
- `https://developer.android.com/reference/java/lang/Comparable`
- `https://developer.android.com/reference/java/util/Comparator`
- `https://developer.android.com/reference/java/lang/ClassCastException`

## Summary

| ### Public methods ||
|---|---|
| ` default void` | ` https://developer.android.com/reference/java/util/SortedSet#addFirst(E)(E e) ` Throws `UnsupportedOperationException`. |
| ` default void` | ` https://developer.android.com/reference/java/util/SortedSet#addLast(E)(E e) ` Throws `UnsupportedOperationException`. |
| ` abstract https://developer.android.com/reference/java/util/Comparator<? super E>` | ` https://developer.android.com/reference/java/util/SortedSet#comparator()() ` Returns the comparator used to order the elements in this set, or `null` if this set uses the [natural ordering](https://developer.android.com/reference/java/lang/Comparable) of its elements. |
| ` abstract E` | ` https://developer.android.com/reference/java/util/SortedSet#first()() ` Returns the first (lowest) element currently in this set. |
| ` default E` | ` https://developer.android.com/reference/java/util/SortedSet#getFirst()() ` Gets the first element of this collection. |
| ` default E` | ` https://developer.android.com/reference/java/util/SortedSet#getLast()() ` Gets the last element of this collection. |
| ` abstract https://developer.android.com/reference/java/util/SortedSet<E>` | ` https://developer.android.com/reference/java/util/SortedSet#headSet(E)(E toElement) ` Returns a view of the portion of this set whose elements are strictly less than `toElement`. |
| ` abstract E` | ` https://developer.android.com/reference/java/util/SortedSet#last()() ` Returns the last (highest) element currently in this set. |
| ` default E` | ` https://developer.android.com/reference/java/util/SortedSet#removeFirst()() ` Removes and returns the first element of this collection (optional operation). |
| ` default E` | ` https://developer.android.com/reference/java/util/SortedSet#removeLast()() ` Removes and returns the last element of this collection (optional operation). |
| ` default https://developer.android.com/reference/java/util/SortedSet<E>` | ` https://developer.android.com/reference/java/util/SortedSet#reversed()() ` Returns a reverse-ordered [view](https://developer.android.com/reference/java/util/Collection#view) of this collection. |
| ` default https://developer.android.com/reference/java/util/Spliterator<E>` | ` https://developer.android.com/reference/java/util/SortedSet#spliterator()() ` Creates a `Spliterator` over the elements in this sorted set. |
| ` abstract https://developer.android.com/reference/java/util/SortedSet<E>` | ` https://developer.android.com/reference/java/util/SortedSet#subSet(E,%20E)(E fromElement, E toElement) ` Returns a view of the portion of this set whose elements range from `fromElement`, inclusive, to `toElement`, exclusive. |
| ` abstract https://developer.android.com/reference/java/util/SortedSet<E>` | ` https://developer.android.com/reference/java/util/SortedSet#tailSet(E)(E fromElement) ` Returns a view of the portion of this set whose elements are greater than or equal to `fromElement`. |

| ### Inherited methods |
|---|---|
| From interface ` https://developer.android.com/reference/java/util/SequencedSet ` |---|---| | ` abstract https://developer.android.com/reference/java/util/SequencedSet<E>` | ` https://developer.android.com/reference/java/util/SequencedSet#reversed()() ` Returns a reverse-ordered [view](https://developer.android.com/reference/java/util/Collection#view) of this collection. | ||
| From interface ` https://developer.android.com/reference/java/util/Set ` |---|---| | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#add(E)(E e) ` Adds the specified element to this set if it is not already present (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#addAll(java.util.Collection<?%20extends%20E>)(https://developer.android.com/reference/java/util/Collection<? extends E> c) ` Adds all of the elements in the specified collection to this set if they're not already present (optional operation). | | ` abstract void` | ` https://developer.android.com/reference/java/util/Set#clear()() ` Removes all of the elements from this set (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#contains(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Returns `true` if this set contains the specified element. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#containsAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Returns `true` if this set contains all of the elements of the specified collection. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#copyOf(java.util.Collection<?%20extends%20E>)(https://developer.android.com/reference/java/util/Collection<? extends E> coll) ` Returns an [unmodifiable Set](https://developer.android.com/reference/java/util/SortedSet#unmodifiable) containing the elements of the given Collection. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Compares the specified object with this set for equality. | | ` abstract int` | ` https://developer.android.com/reference/java/util/Set#hashCode()() ` Returns the hash code value for this set. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#isEmpty()() ` Returns `true` if this set contains no elements. | | ` abstract https://developer.android.com/reference/java/util/Iterator<E>` | ` https://developer.android.com/reference/java/util/Set#iterator()() ` Returns an iterator over the elements in this set. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E)(E e1, E e2, E e3) ` Returns an unmodifiable set containing three elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9) ` Returns an unmodifiable set containing nine elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5) ` Returns an unmodifiable set containing five elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5, E e6) ` Returns an unmodifiable set containing six elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8) ` Returns an unmodifiable set containing eight elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E[])(E... elements) ` Returns an unmodifiable set containing an arbitrary number of elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of()() ` Returns an unmodifiable set containing zero elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E,%20E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10) ` Returns an unmodifiable set containing ten elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E)(E e1, E e2) ` Returns an unmodifiable set containing two elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4, E e5, E e6, E e7) ` Returns an unmodifiable set containing seven elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E,%20E,%20E,%20E)(E e1, E e2, E e3, E e4) ` Returns an unmodifiable set containing four elements. | | ` static <E> https://developer.android.com/reference/java/util/Set<E>` | ` https://developer.android.com/reference/java/util/Set#of(E)(E e1) ` Returns an unmodifiable set containing one element. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#remove(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Removes the specified element from this set if it is present (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#removeAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Removes from this set all of its elements that are contained in the specified collection (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Set#retainAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Retains only the elements in this set that are contained in the specified collection (optional operation). | | ` abstract int` | ` https://developer.android.com/reference/java/util/Set#size()() ` Returns the number of elements in this set (its cardinality). | | ` default https://developer.android.com/reference/java/util/Spliterator<E>` | ` https://developer.android.com/reference/java/util/Set#spliterator()() ` Creates a `Spliterator` over the elements in this set. | | ` abstract https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/util/Set#toArray()() ` Returns an array containing all of the elements in this set. | | ` abstract <T> T[]` | ` https://developer.android.com/reference/java/util/Set#toArray(T[])(T[] a) ` Returns an array containing all of the elements in this set; the runtime type of the returned array is that of the specified array. | ||
| From interface ` https://developer.android.com/reference/java/util/SequencedCollection ` |---|---| | ` default void` | ` https://developer.android.com/reference/java/util/SequencedCollection#addFirst(E)(E e) ` Adds an element as the first element of this collection (optional operation). | | ` default void` | ` https://developer.android.com/reference/java/util/SequencedCollection#addLast(E)(E e) ` Adds an element as the last element of this collection (optional operation). | | ` default E` | ` https://developer.android.com/reference/java/util/SequencedCollection#getFirst()() ` Gets the first element of this collection. | | ` default E` | ` https://developer.android.com/reference/java/util/SequencedCollection#getLast()() ` Gets the last element of this collection. | | ` default E` | ` https://developer.android.com/reference/java/util/SequencedCollection#removeFirst()() ` Removes and returns the first element of this collection (optional operation). | | ` default E` | ` https://developer.android.com/reference/java/util/SequencedCollection#removeLast()() ` Removes and returns the last element of this collection (optional operation). | | ` abstract https://developer.android.com/reference/java/util/SequencedCollection<E>` | ` https://developer.android.com/reference/java/util/SequencedCollection#reversed()() ` Returns a reverse-ordered [view](https://developer.android.com/reference/java/util/Collection#view) of this collection. | ||
| From interface ` https://developer.android.com/reference/java/util/Collection ` |---|---| | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#add(E)(E e) ` Ensures that this collection contains the specified element (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#addAll(java.util.Collection<?%20extends%20E>)(https://developer.android.com/reference/java/util/Collection<? extends E> c) ` Adds all of the elements in the specified collection to this collection (optional operation). | | ` abstract void` | ` https://developer.android.com/reference/java/util/Collection#clear()() ` Removes all of the elements from this collection (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#contains(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Returns `true` if this collection contains the specified element. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#containsAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Returns `true` if this collection contains all of the elements in the specified collection. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Compares the specified object with this collection for equality. | | ` abstract int` | ` https://developer.android.com/reference/java/util/Collection#hashCode()() ` Returns the hash code value for this collection. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#isEmpty()() ` Returns `true` if this collection contains no elements. | | ` abstract https://developer.android.com/reference/java/util/Iterator<E>` | ` https://developer.android.com/reference/java/util/Collection#iterator()() ` Returns an iterator over the elements in this collection. | | ` default https://developer.android.com/reference/java/util/stream/Stream<E>` | ` https://developer.android.com/reference/java/util/Collection#parallelStream()() ` Returns a possibly parallel `Stream` with this collection as its source. | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#remove(java.lang.Object)(https://developer.android.com/reference/java/lang/Object o) ` Removes a single instance of the specified element from this collection, if it is present (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#removeAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Removes all of this collection's elements that are also contained in the specified collection (optional operation). | | ` default boolean` | ` https://developer.android.com/reference/java/util/Collection#removeIf(java.util.function.Predicate<?%20super%20E>)(https://developer.android.com/reference/java/util/function/Predicate<? super E> filter) ` Removes all of the elements of this collection that satisfy the given predicate (optional operation). | | ` abstract boolean` | ` https://developer.android.com/reference/java/util/Collection#retainAll(java.util.Collection<?>)(https://developer.android.com/reference/java/util/Collection<?> c) ` Retains only the elements in this collection that are contained in the specified collection (optional operation). | | ` abstract int` | ` https://developer.android.com/reference/java/util/Collection#size()() ` Returns the number of elements in this collection. | | ` default https://developer.android.com/reference/java/util/Spliterator<E>` | ` https://developer.android.com/reference/java/util/Collection#spliterator()() ` Creates a `https://developer.android.com/reference/java/util/Spliterator` over the elements in this collection. | | ` default https://developer.android.com/reference/java/util/stream/Stream<E>` | ` https://developer.android.com/reference/java/util/Collection#stream()() ` Returns a sequential `Stream` with this collection as its source. | | ` abstract <T> T[]` | ` https://developer.android.com/reference/java/util/Collection#toArray(T[])(T[] a) ` Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array. | | ` abstract https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/util/Collection#toArray()() ` Returns an array containing all of the elements in this collection. | | ` default <T> T[]` | ` https://developer.android.com/reference/java/util/Collection#toArray(java.util.function.IntFunction<T[]>)(https://developer.android.com/reference/java/util/function/IntFunction<T[]> generator) ` Returns an array containing all of the elements in this collection, using the provided `generator` function to allocate the returned array. | ||
| From interface ` https://developer.android.com/reference/java/lang/Iterable ` |---|---| | ` default void` | ` https://developer.android.com/reference/java/lang/Iterable#forEach(java.util.function.Consumer<?%20super%20T>)(https://developer.android.com/reference/java/util/function/Consumer<? super T> action) ` Performs the given action for each element of the `Iterable` until all elements have been processed or the action throws an exception. | | ` abstract https://developer.android.com/reference/java/util/Iterator<E>` | ` https://developer.android.com/reference/java/lang/Iterable#iterator()() ` Returns an iterator over elements of type `T`. | | ` default https://developer.android.com/reference/java/util/Spliterator<E>` | ` https://developer.android.com/reference/java/lang/Iterable#spliterator()() ` Creates a `https://developer.android.com/reference/java/util/Spliterator` over the elements described by this `Iterable`. | ||

## Public methods

### addFirst

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void addFirst (E e)
```

Throws `UnsupportedOperationException`. The encounter order induced by this
set's comparison method determines the position of elements, so explicit positioning
is not supported.

<br />

##### Implementation Requirements:

- The implementation in this interface always throws `UnsupportedOperationException`.

| Parameters ||
|---|---|
| `e` | `E`: the element to be added <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` | always |

### addLast

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void addLast (E e)
```

Throws `UnsupportedOperationException`. The encounter order induced by this
set's comparison method determines the position of elements, so explicit positioning
is not supported.

<br />

##### Implementation Requirements:

- The implementation in this interface always throws `UnsupportedOperationException`.

| Parameters ||
|---|---|
| `e` | `E`: the element to be added. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` | always |

### comparator

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract Comparator<? super E> comparator ()
```

Returns the comparator used to order the elements in this set,
or `null` if this set uses the [natural ordering](https://developer.android.com/reference/java/lang/Comparable) of its elements.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Comparator<? super E>` | the comparator used to order the elements in this set, or `null` if this set uses the natural ordering of its elements <br /> |

### first

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract E first ()
```

Returns the first (lowest) element currently in this set.

<br />

| Returns ||
|---|---|
| `E` | the first (lowest) element currently in this set <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException` | if this set is empty |

### getFirst

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public E getFirst ()
```

Gets the first element of this collection.

<br />

##### Implementation Requirements:

- The implementation in this interface returns the result of calling the `first` method.

| Returns ||
|---|---|
| `E` | the retrieved element <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException` |   |

### getLast

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public E getLast ()
```

Gets the last element of this collection.

<br />

##### Implementation Requirements:

- The implementation in this interface returns the result of calling the `last` method.

| Returns ||
|---|---|
| `E` | the retrieved element <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException` |   |

### headSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract SortedSet<E> headSet (E toElement)
```

Returns a view of the portion of this set whose elements are
strictly less than `toElement`. The returned set is
backed by this set, so changes in the returned set are
reflected in this set, and vice-versa. The returned set
supports all optional set operations that this set supports.

The returned set will throw an `IllegalArgumentException`
on an attempt to insert an element outside its range.

<br />

| Parameters ||
|---|---|
| `toElement` | `E`: high endpoint (exclusive) of the returned set <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/SortedSet<E>` | a view of the portion of this set whose elements are strictly less than `toElement` <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/ClassCastException` | if `toElement` is not compatible with this set's comparator (or, if the set has no comparator, if `toElement` does not implement `https://developer.android.com/reference/java/lang/Comparable`). Implementations may, but are not required to, throw this exception if `toElement` cannot be compared to elements currently in the set. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if this set itself has a restricted range, and `toElement` lies outside the bounds of the range |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `toElement` is null and this set does not permit null elements |

### last

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract E last ()
```

Returns the last (highest) element currently in this set.

<br />

| Returns ||
|---|---|
| `E` | the last (highest) element currently in this set <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/util/NoSuchElementException` | if this set is empty |

### removeFirst

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public E removeFirst ()
```

Removes and returns the first element of this collection (optional operation).

<br />

##### Implementation Requirements:

- The implementation in this interface calls the `first` method to obtain the first element, then it calls `remove(element)` to remove the element, and then it returns the element.

| Returns ||
|---|---|
| `E` | the removed element <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` |   |
| `https://developer.android.com/reference/java/util/NoSuchElementException` |   |

### removeLast

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public E removeLast ()
```

Removes and returns the last element of this collection (optional operation).

<br />

##### Implementation Requirements:

- The implementation in this interface calls the `last` method to obtain the last element, then it calls `remove(element)` to remove the element, and then it returns the element.

| Returns ||
|---|---|
| `E` | the removed element <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` |   |
| `https://developer.android.com/reference/java/util/NoSuchElementException` |   |

### reversed

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SortedSet<E> reversed ()
```

Returns a reverse-ordered [view](https://developer.android.com/reference/java/util/Collection#view) of this collection.
The encounter order of elements in the returned view is the inverse of the encounter
order of elements in this collection. The reverse ordering affects all order-sensitive
operations, including those on the view collections of the returned view. If the collection
implementation permits modifications to this view, the modifications "write through" to the
underlying collection. Changes to the underlying collection might or might not be visible
in this reversed view, depending upon the implementation.

<br />

##### Implementation Requirements:

- The implementation in this interface returns a reverse-ordered SortedSet view. The `reversed()` method of the view returns a reference to this SortedSet. Other operations on the view are implemented via calls to public methods on this SortedSet. The exact relationship between calls on the view and calls on this SortedSet is unspecified. However, order-sensitive operations generally behave as if they delegate to the appropriate method with the opposite orientation. For example, calling `getFirst` on the view might result in a call to `getLast` on this SortedSet.

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/SortedSet<E>` | a reverse-ordered view of this collection, as a `SortedSet` <br /> |

### spliterator

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Spliterator<E> spliterator ()
```

Creates a `Spliterator` over the elements in this sorted set.

The `Spliterator` reports `https://developer.android.com/reference/java/util/Spliterator#DISTINCT`,
`https://developer.android.com/reference/java/util/Spliterator#SORTED` and `https://developer.android.com/reference/java/util/Spliterator#ORDERED`.
Implementations should document the reporting of additional
characteristic values.

The spliterator's comparator (see
`https://developer.android.com/reference/java/util/Spliterator#getComparator()`) must be `null` if
the sorted set's comparator (see `https://developer.android.com/reference/java/util/SortedSet#comparator()`) is `null`.
Otherwise, the spliterator's comparator must be the same as or impose the
same total ordering as the sorted set's comparator.

<br />

##### Implementation Note:

- The created `Spliterator` additionally reports `https://developer.android.com/reference/java/util/Spliterator#SUBSIZED`.

##### Implementation Requirements:

- The default implementation creates a *[late-binding](https://developer.android.com/reference/java/util/Spliterator#binding)* spliterator from the sorted set's `Iterator`. The spliterator inherits the *fail-fast* properties of the set's iterator. The spliterator's comparator is the same as the sorted set's comparator.


  The created `Spliterator` additionally reports
  `https://developer.android.com/reference/java/util/Spliterator#SIZED`.

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Spliterator<E>` | a `Spliterator` over the elements in this sorted set <br /> |

### subSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract SortedSet<E> subSet (E fromElement, 
                E toElement)
```

Returns a view of the portion of this set whose elements range
from `fromElement`, inclusive, to `toElement`,
exclusive. (If `fromElement` and `toElement` are
equal, the returned set is empty.) The returned set is backed
by this set, so changes in the returned set are reflected in
this set, and vice-versa. The returned set supports all
optional set operations that this set supports.

The returned set will throw an `IllegalArgumentException`
on an attempt to insert an element outside its range.

<br />

| Parameters ||
|---|---|
| `fromElement` | `E`: low endpoint (inclusive) of the returned set <br /> |
| `toElement` | `E`: high endpoint (exclusive) of the returned set <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/SortedSet<E>` | a view of the portion of this set whose elements range from `fromElement`, inclusive, to `toElement`, exclusive <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/ClassCastException` | if `fromElement` and `toElement` cannot be compared to one another using this set's comparator (or, if the set has no comparator, using natural ordering). Implementations may, but are not required to, throw this exception if `fromElement` or `toElement` cannot be compared to elements currently in the set. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `fromElement` is greater than `toElement`; or if this set itself has a restricted range, and `fromElement` or `toElement` lies outside the bounds of the range |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `fromElement` or `toElement` is null and this set does not permit null elements |

### tailSet

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract SortedSet<E> tailSet (E fromElement)
```

Returns a view of the portion of this set whose elements are
greater than or equal to `fromElement`. The returned
set is backed by this set, so changes in the returned set are
reflected in this set, and vice-versa. The returned set
supports all optional set operations that this set supports.

The returned set will throw an `IllegalArgumentException`
on an attempt to insert an element outside its range.

<br />

| Parameters ||
|---|---|
| `fromElement` | `E`: low endpoint (inclusive) of the returned set <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/SortedSet<E>` | a view of the portion of this set whose elements are greater than or equal to `fromElement` <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/ClassCastException` | if `fromElement` is not compatible with this set's comparator (or, if the set has no comparator, if `fromElement` does not implement `https://developer.android.com/reference/java/lang/Comparable`). Implementations may, but are not required to, throw this exception if `fromElement` cannot be compared to elements currently in the set. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if this set itself has a restricted range, and `fromElement` lies outside the bounds of the range |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `fromElement` is null and this set does not permit null elements |