Set

public interface Set implements Collection<E>
Known Indirect Subclasses

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.

The Set interface places additional stipulations, beyond those inherited from the Collection interface, on the contracts of all constructors and on the contracts of the add, equals and hashCode methods. Declarations for other inherited methods are also included here for convenience. (The specifications accompanying these declarations have been tailored to the Set interface, but they do not contain any additional stipulations.)

The additional stipulation on constructors is, not surprisingly, that all constructors must create a set that contains no duplicate elements (as defined above).

Note: Great care must be exercised if mutable objects are used as set elements. The behavior of a set is not specified if the value of an object is changed in a manner that affects equals comparisons while the object is an element in the set. A special case of this prohibition is that it is not permissible for a set to contain itself as an element.

Some set implementations have restrictions on the elements that they may contain. For example, some implementations prohibit null elements, and some have restrictions on the types of their elements. Attempting to add an ineligible element throws an unchecked exception, typically NullPointerException or ClassCastException. Attempting to query the presence of an ineligible element may throw an exception, or it may simply return false; some implementations will exhibit the former behavior and some will exhibit the latter. More generally, attempting an operation on an ineligible element whose completion would not result in the insertion of an ineligible element into the set may throw an exception or it may succeed, at the option of the implementation. Such exceptions are marked as "optional" in the specification for this interface.

This interface is a member of the Java Collections Framework.

Public Method Summary

abstract boolean
add(E e)
Adds the specified element to this set if it is not already present (optional operation).
abstract boolean
addAll(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
clear()
Removes all of the elements from this set (optional operation).
abstract boolean
contains(Object o)
Returns true if this set contains the specified element.
abstract boolean
containsAll(Collection<?> c)
Returns true if this set contains all of the elements of the specified collection.
abstract boolean
equals(Object o)
Compares the specified object with this set for equality.
abstract int
hashCode()
Returns the hash code value for this set.
abstract boolean
isEmpty()
Returns true if this set contains no elements.
abstract Iterator<E>
iterator()
Returns an iterator over the elements in this set.
abstract boolean
remove(Object o)
Removes the specified element from this set if it is present (optional operation).
abstract boolean
removeAll(Collection<?> c)
Removes from this set all of its elements that are contained in the specified collection (optional operation).
abstract boolean
retainAll(Collection<?> c)
Retains only the elements in this set that are contained in the specified collection (optional operation).
abstract int
size()
Returns the number of elements in this set (its cardinality).
Spliterator<E>
spliterator()
Creates a Spliterator over the elements in this set.
abstract <T> T[]
toArray(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.
abstract Object[]
toArray()
Returns an array containing all of the elements in this set.

Inherited Method Summary