Spec-Zone .ru
спецификации, руководства, описания, API
|
E
- тип элементов сохраняется этим наборомpublic interface Set<E> extends Collection<E>
e1
и e2
так, что e1.equals(e2)
, и самое большее один нулевой элемент. Как подразумевающийся ее именем, этот интерфейсные модели математическая абстракция набора. Интерфейс Set помещает дополнительные соглашения, вне наследованных от интерфейса Collection, по контрактам всех конструкторов и по контрактам add, методов equals И hashCode. Объявления для других наследованных методов также включаются здесь для удобства. (Спецификации, сопровождающие эти объявления, были адаптированы в соответствии с интерфейсом Set, но они не содержат дополнительных соглашений.)
Дополнительное соглашение на конструкторах, не удивительно, что все конструкторы должны создать набор, который не содержит двойных элементов (как определено выше).
Отметьте: Большая забота должна быть осуществлена, если изменчивые объекты используются в качестве элементов набора. Поведение набора не определяется, если значение объекта изменяется способом, который влияет на сравнения equals, в то время как объект является элементом в наборе. Особый случай этого запрета - то, что не допустимо для набора содержать себя как элемент.
У некоторых реализаций набора есть ограничения на элементы, которые они могут содержать. Например, некоторые реализации запрещают нулевые элементы, и у некоторых есть ограничения на типы их элементов. Попытка добавить неподходящий элемент выдает исключение непроверенное, обычно NullPointerException или ClassCastException. Попытка запросить присутствие неподходящего элемента может выдать исключение, или это может просто возвратить false; некоторые реализации покажут прежнее поведение, и некоторые покажут последнего. Более широко попытка работы на неподходящем элементе, завершение которого не привело бы к вставке неподходящего элемента в набор, может выдать исключение, или это может успешно выполниться в опции реализации. Такие исключения отмечаются как "дополнительные" в спецификации для этого интерфейса.
Этот интерфейс является элементом Платформы Наборов Java.
Collection
, List
, SortedSet
, HashSet
, TreeSet
, AbstractSet
, Collections.singleton(java.lang.Object)
, Collections.EMPTY_SET
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
add(E e)
Добавляет указанный элемент к этому набору, если это уже не присутствует (дополнительная работа).
|
boolean |
addAll(Collection<? extends E> c)
Добавляют все элементы в указанном наборе к этому набору, если они уже не присутствуют (дополнительная работа).
|
void |
clear()
Удаляет все элементы от этого набора (дополнительная работа).
|
boolean |
contains(Object o)
true возвратов, если этот набор содержит указанный элемент.
|
boolean |
containsAll(Collection<?> c)
true возвратов, если этот набор содержит все элементы указанного набора.
|
boolean |
equals(Object o)
Сравнивает указанный объект с этим набором для равенства.
|
int |
hashCode()
Возвращает значение хэш-кода для этого набора.
|
boolean |
isEmpty()
true возвратов, если этот набор не содержит элементов.
|
Iterator<E> |
iterator()
Возвращает iterator по элементам в этом наборе.
|
boolean |
remove(Object o)
Удаляет указанный элемент из этого набора, если это присутствует (дополнительная работа).
|
boolean |
removeAll(Collection<?> c)
Удаляет из этого набора все его элементы, которые содержатся в указанном наборе (дополнительная работа).
|
boolean |
retainAll(Collection<?> c)
Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе (дополнительная работа).
|
int |
size()
Возвращает число элементов в этом наборе (его количество элементов).
|
Объект[] |
toArray()
Возвращает массив, содержащий все элементы в этом наборе.
|
<T> T[] |
toArray(T[] a)
Возвращает массив, содержащий все элементы в этом наборе; тип времени выполнения возвращенного массива является типом указанного массива.
|
int size()
size
в интерфейсе Collection<E>
boolean isEmpty()
isEmpty
в интерфейсе Collection<E>
boolean contains(Object o)
contains
в интерфейсе Collection<E>
o
- элемент, присутствие которого в этом наборе должно быть протестированоClassCastException
- если тип указанного элемента является несовместимым с этим (дополнительным) наборомNullPointerException
- если указанный элемент является нулем, и этот набор не разрешает нулевые (дополнительные) элементыIterator<E> iterator()
Object[] toArray()
Возвращенный массив будет "безопасен" в этом, никакие ссылки на него не сохраняются этим набором. (Другими словами этот метод должен выделить новый массив, даже если этот набор поддерживается массивом). Вызывающая сторона таким образом свободна изменить возвращенный массив.
Этот метод действует как мост между основанными на массиве и основанными на наборе API.
toArray
в интерфейсе Collection<E>
<T> T[] toArray(T[] a)
Если этот набор помещается в указанный массив с комнатой, чтобы сэкономить (то есть, у массива есть больше элементов чем этот набор), элемент в массиве сразу после конца набора устанавливается в null. (Это полезно в определении длины этого набора, только если вызывающая сторона знает, что этот набор не содержит нулевых элементов.)
Если этот набор делает какие-либо гарантии относительно того, какой порядок его элементы возвращаются его iterator, этот метод должен возвратить элементы в том же самом порядке.
Как toArray()
метод, этот метод действует как мост между основанными на массиве и основанными на наборе API. Далее, этот метод позволяет точное управление типом времени выполнения выходного массива, и, при определенных обстоятельствах, может использоваться, чтобы сохранить затраты выделения.
Предположите, что x является набором, который, как известно, содержал только строки. Следующий код может использоваться, чтобы вывести набор в недавно выделенный массив String:
String[] y = x.toArray(new String[0]);Отметьте, что toArray(new Object[0]) идентичен в функции toArray().
toArray
в интерфейсе Collection<E>
a
- массив, в который должны быть сохранены элементы этого набора, если это является достаточно большим; иначе, новый массив того же самого типа времени выполнения выделяется с этой целью.ArrayStoreException
- если тип времени выполнения указанного массива не является супертипом типа времени выполнения каждого элемента в этом набореNullPointerException
- если указанный массив является нулемboolean add(E e)
Соглашение выше не подразумевает, что наборы должны принять все элементы; наборы могут отказаться добавить любой определенный элемент, включая null, и выдать исключение, как описано в спецификации для Collection.add
. Отдельные реализации набора должны ясно задокументировать любые ограничения на элементы, которые они могут содержать.
add
в интерфейсе Collection<E>
e
- элемент, который будет добавлен к этому наборуUnsupportedOperationException
- если работа add не поддерживается этим наборомClassCastException
- если класс указанного элемента препятствует тому, чтобы это было добавлено к этому наборуNullPointerException
- если указанный элемент является нулем, и этот набор не разрешает нулевые элементыIllegalArgumentException
- если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этому наборуboolean remove(Object o)
remove
в интерфейсе Collection<E>
o
- объект, который будет удален из этого набора, если существующийClassCastException
- если тип указанного элемента является несовместимым с этим (дополнительным) наборомNullPointerException
- если указанный элемент является нулем, и этот набор не разрешает нулевые (дополнительные) элементыUnsupportedOperationException
- если работа remove не поддерживается этим наборомboolean containsAll(Collection<?> c)
containsAll
в интерфейсе Collection<E>
c
- набор, который будет проверен на включение в этом набореClassCastException
- если типы одного или более элементов в указанном наборе являются несовместимыми с этим (дополнительным) наборомNullPointerException
- если указанный набор содержит один или более нулевых элементов, и этот набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемcontains(Object)
boolean addAll(Collection<? extends E> c)
addAll
в интерфейсе Collection<E>
c
- набор, содержащий элементы, которые будут добавлены к этому наборуUnsupportedOperationException
- если работа addAll не поддерживается этим наборомClassCastException
- если класс элемента указанного набора препятствует тому, чтобы это было добавлено к этому наборуNullPointerException
- если указанный набор содержит один или более нулевых элементов, и этот набор не разрешает нулевые элементы, или если указанный набор является нулемIllegalArgumentException
- если некоторое свойство элемента указанного набора препятствует тому, чтобы это было добавлено к этому наборуadd(Object)
boolean retainAll(Collection<?> c)
retainAll
в интерфейсе Collection<E>
c
- набор, содержащий элементы, которые будут сохранены в этом набореUnsupportedOperationException
- если работа retainAll не поддерживается этим наборомClassCastException
- если класс элемента этого набора является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот набор содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
boolean removeAll(Collection<?> c)
removeAll
в интерфейсе Collection<E>
c
- набор, содержащий элементы, которые будут удалены из этого набораUnsupportedOperationException
- если работа removeAll не поддерживается этим наборомClassCastException
- если класс элемента этого набора является несовместимым с указанным (дополнительным) наборомNullPointerException
- если этот набор содержит нулевой элемент, и указанный набор не разрешает нулевые (дополнительные) элементы, или если указанный набор является нулемremove(Object)
, contains(Object)
void clear()
clear
в интерфейсе Collection<E>
UnsupportedOperationException
- если метод clear не поддерживается этим наборомboolean equals(Object o)
equals
в интерфейсе Collection<E>
equals
в классе Object
o
- объект, который будет сравнен для равенства с этим наборомObject.hashCode()
, HashMap
int hashCode()
Object.hashCode()
.hashCode
в интерфейсе Collection<E>
hashCode
в классе Object
Object.equals(Object)
, equals(Object)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.