| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package java.util; |
| |
| |
| /** |
| * A {@code Set} is a data structure which does not allow duplicate elements. |
| * |
| * @since 1.2 |
| */ |
| public interface Set<E> extends Collection<E> { |
| |
| /** |
| * Adds the specified object to this set. The set is not modified if it |
| * already contains the object. |
| * |
| * @param object |
| * the object to add. |
| * @return {@code true} if this set is modified, {@code false} otherwise. |
| * @throws UnsupportedOperationException |
| * when adding to this set is not supported. |
| * @throws ClassCastException |
| * when the class of the object is inappropriate for this set. |
| * @throws IllegalArgumentException |
| * when the object cannot be added to this set. |
| */ |
| public boolean add(E object); |
| |
| /** |
| * Adds the objects in the specified collection which do not exist yet in |
| * this set. |
| * |
| * @param collection |
| * the collection of objects. |
| * @return {@code true} if this set is modified, {@code false} otherwise. |
| * @throws UnsupportedOperationException |
| * when adding to this set is not supported. |
| * @throws ClassCastException |
| * when the class of an object is inappropriate for this set. |
| * @throws IllegalArgumentException |
| * when an object cannot be added to this set. |
| */ |
| public boolean addAll(Collection<? extends E> collection); |
| |
| /** |
| * Removes all elements from this set, leaving it empty. |
| * |
| * @throws UnsupportedOperationException |
| * when removing from this set is not supported. |
| * @see #isEmpty |
| * @see #size |
| */ |
| public void clear(); |
| |
| /** |
| * Searches this set for the specified object. |
| * |
| * @param object |
| * the object to search for. |
| * @return {@code true} if object is an element of this set, {@code false} |
| * otherwise. |
| */ |
| public boolean contains(Object object); |
| |
| /** |
| * Searches this set for all objects in the specified collection. |
| * |
| * @param collection |
| * the collection of objects. |
| * @return {@code true} if all objects in the specified collection are |
| * elements of this set, {@code false} otherwise. |
| */ |
| public boolean containsAll(Collection<?> collection); |
| |
| /** |
| * Compares the specified object to this set, and returns true if they |
| * represent the <em>same</em> object using a class specific comparison. |
| * Equality for a set means that both sets have the same size and the same |
| * elements. |
| * |
| * @param object |
| * the object to compare with this object. |
| * @return boolean {@code true} if the object is the same as this object, |
| * and {@code false} if it is different from this object. |
| * @see #hashCode |
| */ |
| public boolean equals(Object object); |
| |
| /** |
| * Returns the hash code for this set. Two set which are equal must return |
| * the same value. |
| * |
| * @return the hash code of this set. |
| * |
| * @see #equals |
| */ |
| public int hashCode(); |
| |
| /** |
| * Returns true if this set has no elements. |
| * |
| * @return {@code true} if this set has no elements, {@code false} |
| * otherwise. |
| * @see #size |
| */ |
| public boolean isEmpty(); |
| |
| /** |
| * Returns an iterator on the elements of this set. The elements are |
| * unordered. |
| * |
| * @return an iterator on the elements of this set. |
| * @see Iterator |
| */ |
| public Iterator<E> iterator(); |
| |
| /** |
| * Removes the specified object from this set. |
| * |
| * @param object |
| * the object to remove. |
| * @return {@code true} if this set was modified, {@code false} otherwise. |
| * @throws UnsupportedOperationException |
| * when removing from this set is not supported. |
| */ |
| public boolean remove(Object object); |
| |
| /** |
| * Removes all objects in the specified collection from this set. |
| * |
| * @param collection |
| * the collection of objects to remove. |
| * @return {@code true} if this set was modified, {@code false} otherwise. |
| * @throws UnsupportedOperationException |
| * when removing from this set is not supported. |
| */ |
| public boolean removeAll(Collection<?> collection); |
| |
| /** |
| * Removes all objects from this set that are not contained in the specified |
| * collection. |
| * |
| * @param collection |
| * the collection of objects to retain. |
| * @return {@code true} if this set was modified, {@code false} otherwise. |
| * @throws UnsupportedOperationException |
| * when removing from this set is not supported. |
| */ |
| public boolean retainAll(Collection<?> collection); |
| |
| /** |
| * Returns the number of elements in this set. |
| * |
| * @return the number of elements in this set. |
| */ |
| public int size(); |
| |
| /** |
| * Returns an array containing all elements contained in this set. |
| * |
| * @return an array of the elements from this set. |
| */ |
| public Object[] toArray(); |
| |
| /** |
| * Returns an array containing all elements contained in this set. If the |
| * specified array is large enough to hold the elements, the specified array |
| * is used, otherwise an array of the same type is created. If the specified |
| * array is used and is larger than this set, the array element following |
| * the collection elements is set to null. |
| * |
| * @param array |
| * the array. |
| * @return an array of the elements from this set. |
| * @throws ArrayStoreException |
| * when the type of an element in this set cannot be stored in |
| * the type of the specified array. |
| * @see Collection#toArray(Object[]) |
| */ |
| public <T> T[] toArray(T[] array); |
| } |