public interface Set<E> extends Collection<E>
e1.equals(e2)
returns false. There
are additional stipulations on add
, equals
and hashCode
, as well as the requirements that constructors
do not permit duplicate elements. The Set interface is incompatible with
List; you cannot implement both simultaneously.
Note: Be careful about using mutable objects in sets. In particular, if a mutable object changes to become equal to another set element, you have violated the contract. As a special case of this, a Set is not allowed to be an element of itself, without risking undefined behavior.
Collection
,
List
,
SortedSet
,
HashSet
,
TreeSet
,
LinkedHashSet
,
AbstractSet
,
Collections.singleton(Object)
,
Collections.EMPTY_SET
Modifier and Type | Method and Description |
---|---|
boolean |
add(E o)
Adds the specified element to the set if it is not already present
(optional operation).
|
boolean |
addAll(Collection<? extends E> c)
Adds all of the elements of the given collection to this set (optional
operation).
|
void |
clear()
Removes all elements from this set (optional operation).
|
boolean |
contains(Object o)
Returns true if the set contains the specified element.
|
boolean |
containsAll(Collection<?> c)
Returns true if this set contains all elements in the specified
collection.
|
boolean |
equals(Object o)
Compares the specified object to this for equality.
|
int |
hashCode()
Returns the hash code for this set.
|
boolean |
isEmpty()
Returns true if the set contains no elements.
|
Iterator<E> |
iterator()
Returns an iterator over the set.
|
boolean |
remove(Object o)
Removes the specified element from this set (optional operation).
|
boolean |
removeAll(Collection<?> c)
Removes from this set all elements contained in the specified collection
(optional operation).
|
boolean |
retainAll(Collection<?> c)
Retains only the elements in this set that are also in the specified
collection (optional operation).
|
int |
size()
Returns the number of elements in the set.
|
Object[] |
toArray()
Returns an array containing the elements of this set.
|
<T> T[] |
toArray(T[] a)
Returns an array containing the elements of this set, of the same runtime
type of the argument.
|
boolean add(E o)
o == null ? e == null : o.equals(e)
. Sets need not permit
all values, and may document what exceptions will be thrown if
a value is not permitted.add
in interface Collection<E>
o
- the object to addUnsupportedOperationException
- if this operation is not allowedClassCastException
- if the class of o prevents it from being addedIllegalArgumentException
- if some aspect of o prevents it from
being addedNullPointerException
- if null is not permitted in this setboolean addAll(Collection<? extends E> c)
addAll
in interface Collection<E>
c
- the collection to addUnsupportedOperationException
- if this operation is not allowedClassCastException
- if the class of an element prevents it from
being addedIllegalArgumentException
- if something about an element prevents
it from being addedNullPointerException
- if null is not permitted in this set, or
if the argument c is nulladd(Object)
void clear()
clear
in interface Collection<E>
UnsupportedOperationException
- if this operation is not allowedboolean contains(Object o)
o == null ? e == null : o.equals(e)
.contains
in interface Collection<E>
o
- the object to look forClassCastException
- if the type of o is not a valid type
for this set.NullPointerException
- if o is null and this set doesn't
support null values.boolean containsAll(Collection<?> c)
containsAll
in interface Collection<E>
c
- the collection to check membership inNullPointerException
- if c is nullClassCastException
- if the type of any element in c is not
a valid type for this set.NullPointerException
- if some element of c is null and this
set doesn't support null values.contains(Object)
boolean equals(Object o)
equals
in interface Collection<E>
equals
in class Object
o
- the object to compare toint hashCode()
hashCode
in interface Collection<E>
hashCode
in class Object
equals(Object)
boolean isEmpty()
isEmpty
in interface Collection<E>
Iterator<E> iterator()
boolean remove(Object o)
o == null ? e == null : o.equals(e)
,
it is removed from the set.remove
in interface Collection<E>
o
- the object to removeUnsupportedOperationException
- if this operation is not allowedClassCastException
- if the type of o is not a valid type
for this set.NullPointerException
- if o is null and this set doesn't allow
the removal of a null value.boolean removeAll(Collection<?> c)
removeAll
in interface Collection<E>
c
- the collection to remove from this setUnsupportedOperationException
- if this operation is not allowedNullPointerException
- if c is nullClassCastException
- if the type of any element in c is not
a valid type for this set.NullPointerException
- if some element of c is null and this
set doesn't support removing null values.remove(Object)
boolean retainAll(Collection<?> c)
retainAll
in interface Collection<E>
c
- the collection to keepUnsupportedOperationException
- if this operation is not allowedNullPointerException
- if c is nullClassCastException
- if the type of any element in c is not
a valid type for this set.NullPointerException
- if some element of c is null and this
set doesn't support retaining null values.remove(Object)
int size()
size
in interface Collection<E>
Object[] toArray()
toArray
in interface Collection<E>
toArray(Object[])
<T> T[] toArray(T[] a)
toArray
in interface Collection<E>
a
- the array to determine the return type; if it is big enough
it is used and returnedArrayStoreException
- if the runtime type of a is not a supertype
of all elements in the setNullPointerException
- if a is nulltoArray()