Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable
null
объект может использоваться в качестве ключа или в качестве значения. Чтобы успешно сохранить и получить объекты от хеш-таблицы, объекты, используемые в качестве, ключи должны реализовать hashCode
метод и equals
метод.
Экземпляр Hashtable
имеет два параметра, которые влияют на его производительность: начальная емкость и коэффициент загрузки. Емкость является числом блоков в хэш-таблице, и начальная емкость является просто емкостью в то время, когда хэш-таблица создается. Отметьте, что хэш-таблица открыта: в случае "хэш-коллизии" единственный блок хранит многократные записи, которые должны искаться последовательно. Коэффициент загрузки является мерой того, как полный хэш-таблице позволяют добраться прежде, чем ее емкость будет автоматически увеличена. Начальная емкость и параметры коэффициента загрузки являются просто подсказками к реализации. Точные детали относительно того, когда и вызывается ли метод перефразировки, являются зависящими от реализации.
Обычно, коэффициент загрузки по умолчанию (.75) предложения хороший компромисс между затратами времени и пространства. Более высокие значения уменьшают издержки пространства, но увеличивают стоимость времени, чтобы искать запись (который отражается в большинстве операций Hashtable, включая get и put).
Начальная емкость управляет компромиссом между потраченным впустую пространством и потребностью в rehash
операции, которые являются отнимающими много времени. Нет rehash
операции будут когда-либо происходить, если начальная емкость будет больше чем максимальное количество записей, то Hashtable будет содержать разделенный на его коэффициент загрузки. Однако, установка начальной емкости слишком высоко может потратить впустую пространство.
Если много записей должны быть превращены в a Hashtable
, создание этого с достаточно большой емкостью может позволить записям быть вставленными более эффективно чем разрешение этому выполнить автоматическое перефразирование как необходимый вырастить таблицу.
Этот пример создает хеш-таблицу чисел. Это использует имена чисел как ключи:
Hashtable<String, Integer> numbers
= new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);
Чтобы получить число, используйте следующий код:
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}
iterators, возвращенные методом iterator наборов, возвращенных всеми "методами представления набора этого класса", являются сбоем быстро: если Хеш-таблица структурно изменяется когда-либо после того, как iterator создается, всегда кроме через собственный метод remove iterator, iterator бросит a ConcurrentModificationException
. Таким образом, перед лицом параллельной модификации, iterator перестал работать быстро и чисто, вместо того, чтобы рискнуть произвольным, недетерминированным поведением в неопределенное время в будущем. Перечисления, возвращенные ключами Хеш-таблицы и методами элементов, не являются сбоем быстро.
Отметьте, что поведение сбоя быстро iterator не может быть гарантировано, как, вообще говоря, невозможно сделать любые трудные гарантии в присутствии несинхронизируемой параллельной модификации. Перестаньте работать быстро iterators бросают ConcurrentModificationException на основе максимальных усилий. Поэтому, было бы неправильно записать программу, которая зависела от этого исключения для его правильности: поведение сбоя быстро iterators должно использоваться только, чтобы обнаружить ошибки.
С Java 2 платформы v1.2, этот класс был retrofitted, чтобы реализовать Map
интерфейс, делая это элемент Платформы Наборов Java. В отличие от новых реализаций набора, Hashtable
синхронизируется. Если ориентированная на многопотоковое исполнение реализация не необходима, рекомендуется использовать HashMap
вместо Hashtable
. Если ориентированная на многопотоковое исполнение чрезвычайно параллельная реализация требуется, то рекомендуется использовать ConcurrentHashMap
вместо Hashtable
.
Object.equals(java.lang.Object)
, Object.hashCode()
, rehash()
, Collection
, Map
, HashMap
, TreeMap
, Сериализированная ФормаКонструктор и Описание |
---|
Hashtable()
Создает новую, пустую хеш-таблицу с начальной емкостью по умолчанию (11) и коэффициент загрузки (0.75).
|
Hashtable(int initialCapacity)
Создает новую, пустую хеш-таблицу с указанной начальной емкостью и коэффициентом загрузки по умолчанию (0.75).
|
Hashtable(int initialCapacity, float loadFactor)
Создает новую, пустую хеш-таблицу с указанной начальной емкостью и указанным коэффициентом загрузки.
|
Hashtable(Map<? extends K,? extends V> t)
Создает новую хеш-таблицу с теми же самыми отображениями как данная Карта.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
clear()
Очищает эту хеш-таблицу так, чтобы она не содержала ключей.
|
Объект |
clone()
Создает мелкую копию этой хеш-таблицы.
|
boolean |
contains(Object value)
Тесты, если некоторые контурные карты в указанное значение в этой хеш-таблице.
|
boolean |
containsKey(Object key)
Тесты, если указанный объект является ключом в этой хеш-таблице.
|
boolean |
containsValue(Object value)
Возвращает true, если эта хеш-таблица отображает один или более ключей на это значение.
|
Enumeration<V> |
elements()
Возвращает перечисление значений в этой хеш-таблице.
|
Set<Map.Entry<K,V>> |
entrySet()
Возвраты a
Set представление отображений содержится в этой карте. |
boolean |
equals(Object o)
Сравнивает указанный Объект с этой Картой для равенства, согласно определению в интерфейсе Карты.
|
V |
get(Object key)
Возвращает значение, на которое указанный ключ отображается, или
null если эта карта не содержит отображения для ключа. |
int |
hashCode()
Возвращает значение хэш-кода для этой Карты согласно определению в интерфейсе Карты.
|
boolean |
isEmpty()
Тесты, если эта хеш-таблица не отображает ключей на значения.
|
Enumeration<K> |
keys()
Возвращает перечисление ключей в этой хеш-таблице.
|
Set<K> |
keySet()
Возвраты a
Set представление ключей содержится в этой карте. |
V |
put(K key, V value)
Отображает указанное
key к указанному value в этой хеш-таблице. |
void |
putAll(Map<? extends K,? extends V> t)
Копии все отображения от указанной карты до этой хеш-таблицы.
|
protected void |
rehash()
Увеличивает емкость и внутренне реорганизовывает эту хеш-таблицу, чтобы разместить и получить доступ к ее записям более эффективно.
|
V |
remove(Object key)
Удаляет ключ (и его соответствующее значение) от этой хеш-таблицы.
|
int |
size()
Возвращает число ключей в этой хеш-таблице.
|
Строка |
toString()
Возвращает строковое представление этого объекта Hashtable в форме ряда записей, включенных в фигурные скобки и разделенный символами ASCII " , " (запятая и пространство).
|
Collection<V> |
values()
Возвраты a
Collection представление значений содержится в этой карте. |
public Hashtable(int initialCapacity, float loadFactor)
initialCapacity
- начальная емкость хеш-таблицы.loadFactor
- коэффициент загрузки хеш-таблицы.IllegalArgumentException
- если начальная емкость является меньше чем нуль, или если коэффициент загрузки неположителен.public Hashtable(int initialCapacity)
initialCapacity
- начальная емкость хеш-таблицы.IllegalArgumentException
- если начальная емкость является меньше чем нуль.public Hashtable()
public Hashtable(Map<? extends K,? extends V> t)
t
- карта, отображения которой должны быть помещены в эту карту.NullPointerException
- если указанная карта является нулем.public int size()
public boolean isEmpty()
public Enumeration<K> keys()
keys
в классе Dictionary<K,V>
Enumeration
, elements()
, keySet()
, Map
public Enumeration<V> elements()
elements
в классе Dictionary<K,V>
Enumeration
, keys()
, values()
, Map
public boolean contains(Object value)
containsKey
метод. Отметьте, что этот метод идентичен в функциональности containsValue
, (который является частью Map
интерфейс в платформе наборов).
value
- значение, чтобы искатьtrue
если и только если некоторые контурные карты к value
параметр в этой хеш-таблице как определено методом equals; false
иначе.NullPointerException
- если значение null
public boolean containsValue(Object value)
Отметьте, что этот метод идентичен в функциональности contains
(который предшествует Map
интерфейс).
containsValue
в интерфейсе Map<K,V>
value
- оцените, чье присутствие в этой хеш-таблице должно быть протестированоNullPointerException
- если значение null
public boolean containsKey(Object key)
containsKey
в интерфейсе Map<K,V>
key
- возможный ключtrue
если и только если указанный объект является ключом в этой хеш-таблице, как определено методом equals; false
иначе.NullPointerException
- если ключ null
contains(Object)
public V get(Object key)
null
если эта карта не содержит отображения для ключа. Более формально, если эта карта содержит отображение от ключа k
к значению v
так, что (key.equals(k))
, тогда этот метод возвраты v
; иначе это возвращается null
. (Может быть самое большее одно такое отображение.)
get
в интерфейсе Map<K,V>
get
в классе Dictionary<K,V>
key
- ключ, присваиваемое значение которого должно быть возвращеноnull
если эта карта не содержит отображения для ключаNullPointerException
- если указанный ключ является нулемput(Object, Object)
protected void rehash()
public V put(K key, V value)
key
к указанному value
в этой хеш-таблице. Ни ключ, ни значение не могут быть null
. Значение может быть получено, вызывая get
метод с ключом, который равен исходному ключу.
put
в интерфейсе Map<K,V>
put
в классе Dictionary<K,V>
key
- ключ хеш-таблицыvalue
- значениеnull
если у этого не было тогоNullPointerException
- если ключ или значение null
Object.equals(Object)
, get(Object)
public V remove(Object key)
remove
в интерфейсе Map<K,V>
remove
в классе Dictionary<K,V>
key
- ключ, который должен быть удаленnull
если у ключа не было отображенияNullPointerException
- если ключ null
public void putAll(Map<? extends K,? extends V> t)
putAll
в интерфейсе Map<K,V>
t
- отображения, которые будут сохранены в этой картеNullPointerException
- если указанная карта является нулемpublic void clear()
public Object clone()
public String toString()
public Set<K> keySet()
Set
представление ключей содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Set.remove, removeAll, retainAll, и операции clear. Это не поддерживает операции addAll или add.public Set<Map.Entry<K,V>> entrySet()
Set
представление отображений содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator, или через работу setValue на записи карты, возвращенной iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Set.remove, removeAll, retainAll и операции clear. Это не поддерживает операции addAll или add.public Collection<V> values()
Collection
представление значений содержится в этой карте. Набор поддерживается картой, так изменения к карте отражаются в наборе, и наоборот. Если карта изменяется, в то время как итерация по набору происходит (кроме через собственную работу remove iterator), результаты итерации неопределены. Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Collection.remove, removeAll, retainAll и операции clear. Это не поддерживает операции addAll или add.public boolean equals(Object o)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.