java.util.Hashtable翻译

来源:互联网 发布:模具设计和编程哪个好 编辑:程序博客网 时间:2024/05/04 22:21
 Overview Package  Class Use Tree Deprecated Index Help JavaTM 2 Platform
Std. Ed. v1.4.2
 PREV CLASS   NEXT CLASSFRAMES    NO FRAMES     All Classes SUMMARY: NESTED | FIELD | CONSTR | METHODDETAIL: FIELD | CONSTR | METHOD

java.util
Class Hashtable

java.lang.Object  extended byjava.util.Dictionary      extended byjava.util.Hashtable
All Implemented Interfaces:
Cloneable, Map, Serializable
Direct Known Subclasses:
Properties, UIDefaults

public class Hashtable
extends Dictionary
implements Map, Cloneable, Serializable

This class implements a hashtable, which maps keys to values. Any non-null object can be used as a key or as a value. 该类提供了在key和值之间建立映射的哈希表实现。所有非null对象都能作为key或值。

To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the hashCode method and the equals method. 为了成功地向哈希表中存储或获取对象,作为key的对象必须实现hashCode方法和equals方法。

An instance of Hashtable has two parameters that affect its performance: initial capacity and load factor. The capacity is the number of buckets in the hash table, and the initial capacity is simply the capacity at the time the hash table is created. Note that the hash table is open: in the case of a "hash collision", a single bucket stores multiple entries, which must be searched sequentially. The load factor is a measure of how full the hash table is allowed to get before its capacity is automatically increased. When the number of entries in the hashtable exceeds the product of the load factor and the current capacity, the capacity is increased by calling the rehash method. Hashtable实例有两个参数影响它的性能:初始容量和加载因子。容量是哈希表中 哈希元的数目,初始容量即哈希表创建时的容量。注意哈希表是开放的:一旦遭遇 哈希碰撞,单个哈希元存储了多个项,那么必须重新进行查找。加载因子是哈希表容量自动增长前 哈希标有多满的度量。当哈希表中项的数目超出了加载因子和当前容量的乘积,那么调用rehash方法来增加容量。

Generally, the default load factor (.75) offers a good tradeoff between time and space costs. Higher values decrease the space overhead but increase the time cost to look up an entry (which is reflected in most Hashtable operations, including get and put). 一般而言,默认的加载因子0.75在时间和空间的开销上给出了一个较好的折衷。 值增加会降低空间开销,但增加了查询某个项的时间开销(影响Hashtable的大多数操作, 包括get和put)。

The initial capacity controls a tradeoff between wasted space and the need for rehash operations, which are time-consuming. No rehash operations will ever occur if the initial capacity is greater than the maximum number of entries the Hashtable will contain divided by its load factor. However, setting the initial capacity too high can waste space. 初始容量是空间花费和rehash操作(它是耗时的)需要之间的折衷。 如果初始容量大于Hashtable能容纳的项的最大数量和加载因子之商,那么 rehash操作将不会发生。但是设置如此大的初始容量会极大地浪费空间。

If many entries are to be made into a Hashtable, creating it with a sufficiently large capacity may allow the entries to be inserted more efficiently than letting it perform automatic rehashing as needed to grow the table. 如果有许多项要插入Hashtable,那么创建时应该是用足够大的容量以允许项的插入,这样会更有效, 而不是依赖于表需要时执行自动的rehash操作,

This example creates a hashtable of numbers. It uses the names of the numbers as keys: 以下例子创建了一个数字哈希表,它用了数字的名称来作key:

     Hashtable numbers = new Hashtable();     numbers.put("one", new Integer(1));     numbers.put("two", new Integer(2));     numbers.put("three", new Integer(3)); 

To retrieve a number, use the following code: 为了获得一个数字,使用以下代码:

     Integer n = (Integer)numbers.get("two");     if (n != null) {         System.out.println("two = " + n);     } 

As of the Java 2 platform v1.2, this class has been retrofitted to implement Map, so that it becomes a part of Java's collection framework. Unlike the new collection implementations, Hashtable is synchronized. 从Java 2平台1.2以来,该类已作更改以实现Map,因此它成了Java集合框架的一部分。 和其他新的集合实现不同,Hashtable是同步化的。

The Iterators returned by the iterator and listIterator methods of the Collections returned by all of Hashtable's "collection view methods" are fail-fast: if the Hashtable is structurally modified at any time after the Iterator is created, in any way except through the Iterator's own remove or add methods, the Iterator will throw a ConcurrentModificationException. Thus, in the face of concurrent modification, the Iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic behavior at an undetermined time in the future. The Enumerations returned by Hashtable's keys and values methods are not fail-fast. 由Hashtable的集合视图方法返回的Collection,再由它的iterator和listIterator方法返回的 Iterator也具有fail-fast特性:即如果Hashtable在Iterator创建后使用除Iterator 自身的remove或add方法以外的方式使其有了结构性更改,Iterator将抛出ConcurrentModificationException。 因此,遇到同步修改时,Iterator会立即失败,宁可不冒未来某一时刻不能确定的行为风险。 Hashtable的keys和values方法返回的Enumeration不具有fail-fast特性。

Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw ConcurrentModificationException on a best-effort basis. Therefore, it would be wrong to write a program that depended on this exception for its correctness: the fail-fast behavior of iterators should be used only to detect bugs. 注意迭代器的fail-fast特性不能保证,正如在非同步化修改中做保证也是不可能的。 具有fail-fast特性的迭代器会基于最有效原则抛出 ConcurrentModificationException,因此写的程序依赖于该异常来纠正是错误的: 迭代器的fail-fast特性应该只用来调试bug。

This class is a member of the Java Collections Framework. 该类是Java集合框架成员之一。

Since:
JDK1.0
See Also:
Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Constructor SummaryHashtable()
          Constructs a new, empty hashtable with a default initial capacity (11) and load factor, which is 0.75. 构建一个新的默认初始容量(11)的空哈希表,默认装载因子0.75。
Hashtable(int initialCapacity)
          Constructs a new, empty hashtable with the specified initial capacity and default load factor, which is 0.75. 构建一个新的指定初始容量的空哈希表,默认装载因子0.75。
Hashtable(int initialCapacity, float loadFactor)
          Constructs a new, empty hashtable with the specified initial capacity and the specified load factor. 构建一个新的指定初始容量和装载因子的空哈希表。
Hashtable(Map t)
          Constructs a new hashtable with the same mappings as the given Map. 构建一个与给出的Map有相同映射关系的哈希表。
  Method Summary voidclear()
          Clears this hashtable so that it contains no keys. 清空哈希表,使它不含key。
 Objectclone()
          Creates a shallow copy of this hashtable. 创建一个哈希表的浅拷贝。
 booleancontains(Object value)
          Tests if some key maps into the specified value in this hashtable. 测试哈希表中是否有key映射到指定值。
 booleancontainsKey(Object key)
          Tests if the specified object is a key in this hashtable. 测试指定对象是否是哈希表中的key。
 booleancontainsValue(Object value)
          Returns true if this Hashtable maps one or more keys to this value. 如果Hashtable中有一个或多个key映射到该值,返回true。
 Enumerationelements()
          Returns an enumeration of the values in this hashtable. 返回哈希表中值的枚举。
 SetentrySet()
          Returns a Set view of the entries contained in this Hashtable. 返回Hashtable中项的set视图。
 booleanequals(Object o)
          Compares the specified Object with this Map for equality, as per the definition in the Map interface. 根据Map接口的定义将指定对象与当前Map比较相等性。
 Objectget(Object key)
          Returns the value to which the specified key is mapped in this hashtable. 返回哈希表中指定key的映射值。
 inthashCode()
          Returns the hash code value for this Map as per the definition in the Map interface. 根据Map接口的定义返回此Map的哈希码值。
 booleanisEmpty()
          Tests if this hashtable maps no keys to values. 测试哈希表是否有key到值的映射。
 Enumerationkeys()
          Returns an enumeration of the keys in this hashtable. 返回哈希表中key的枚举。
 SetkeySet()
          Returns a Set view of the keys contained in this Hashtable. 返回Hashtable中key的set视图。
 Objectput(Object key, Object value)
          Maps the specified key to the specified value in this hashtable. 向哈希表添加指定key和指定值的映射。
 voidputAll(Map t)
          Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map. 将指定Map的所有映射拷贝至哈希表。如果哈希表中存在指定Map中的任意key,将替换原有的映射。
protected  voidrehash()
          Increases the capacity of and internally reorganizes this hashtable, in order to accommodate and access its entries more efficiently. 增加哈希表的容量,内部调整,以便更有效地容纳和访问项。
 Objectremove(Object key)
          Removes the key (and its corresponding value) from this hashtable. 从哈希表中删除key和相应的值。
 intsize()
          Returns the number of keys in this hashtable. 返回哈希表中key的数目。
 StringtoString()
          Returns a string representation of this Hashtable object in the form of a set of entries, enclosed in braces and separated by the ASCII characters "" (comma and space). 以一组项的形式返回哈希表对象的字符串形式,以大括号封装,以ASCII符“, ”(逗号和空格)分隔。
 Collectionvalues()
          Returns a Collection view of the values contained in this Hashtable. 返回Hashtable中值的Collection视图。
  Methods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, wait, wait, wait 

Constructor Detail

Hashtable

public Hashtable(int initialCapacity,                 float loadFactor)
Constructs a new, empty hashtable with the specified initial capacity and the specified load factor. 构建一个新的指定初始容量和装载因子的空哈希表。

Parameters:
initialCapacity - the initial capacity of the hashtable. 哈希表的初始容量。
loadFactor - the load factor of the hashtable. 哈希表的加载因子。
Throws:
IllegalArgumentException - if the initial capacity is less than zero, or if the load factor is nonpositive. 如果初始容量小于0,或者加载因子非正时抛出。

Hashtable

public Hashtable(int initialCapacity)
Constructs a new, empty hashtable with the specified initial capacity and default load factor, which is 0.75. 构建一个新的指定初始容量的空哈希表,默认装载因子0.75。

Parameters:
initialCapacity - the initial capacity of the hashtable. 哈希表的初始容量。
Throws:
IllegalArgumentException - if the initial capacity is less than zero. 如果初始容量小于0时抛出。

Hashtable

public Hashtable()
Constructs a new, empty hashtable with a default initial capacity (11) and load factor, which is 0.75. 构建一个新的默认初始容量(11)的空哈希表,默认装载因子0.75。


Hashtable

public Hashtable(Map t)
Constructs a new hashtable with the same mappings as the given Map. The hashtable is created with an initial capacity sufficient to hold the mappings in the given Map and a default load factor, which is 0.75. 构建一个与给出的Map有相同映射关系的哈希表。哈希表的初始容量需足够容纳下给定Map中的映射, 加载因子默认为0.75。

Parameters:
t - the map whose mappings are to be placed in this map. 映射关系要被放入当前map的map。
Throws:
NullPointerException - if the specified map is null. 如果指定map为null时抛出。
Since:
1.2
Method Detail

size

public int size()
Returns the number of keys in this hashtable. 返回哈希表中key的数目。

Specified by:
size in interface Map
Specified by:
size in class Dictionary
Returns:
the number of keys in this hashtable. 哈希表中key的数目。

isEmpty

public boolean isEmpty()
Tests if this hashtable maps no keys to values. 测试哈希表是否有key到值的映射。

Specified by:
isEmpty in interface Map
Specified by:
isEmpty in class Dictionary
Returns:
true if this hashtable maps no keys to values; false otherwise. 如果哈希表中不含key到值的映射,返回true,否则为false。

keys

public Enumeration keys()
Returns an enumeration of the keys in this hashtable. 返回哈希表中key的枚举。

Specified by:
keys in class Dictionary
Returns:
an enumeration of the keys in this hashtable. 哈希表中key的枚举。
See Also:
Enumeration, elements(), keySet(), Map

elements

public Enumeration elements()
Returns an enumeration of the values in this hashtable. Use the Enumeration methods on the returned object to fetch the elements sequentially. 返回哈希表中值的枚举。使用Enumeration的方法来依次返回对象获得元素。

Specified by:
elements in class Dictionary
Returns:
an enumeration of the values in this hashtable. 哈希表中值的枚举。
See Also:
Enumeration, keys(), values(), Map

contains

public boolean contains(Object value)
Tests if some key maps into the specified value in this hashtable. This operation is more expensive than the containsKey method. 测试哈希表中是否有key映射到指定值。该操作比containsKey方法代价高。

Note that this method is identical in functionality to containsValue, (which is part of the Map interface in the collections framework). 注意该方法和containsValue(其是集合框架中Map接口的一部分)功能上相同。

Parameters:
value - a value to search for. 要查找的值。
Returns:
true if and only if some key maps to the value argument in this hashtable as determined by the equals method; false otherwise. 只有当以equals方法判断,哈希表中的某些key映射到value参数,返回true,否则返回false。
Throws:
NullPointerException - if the value is null. 如果值为null时抛出。
See Also:
containsKey(Object), containsValue(Object), Map

containsValue

public boolean containsValue(Object value)
Returns true if this Hashtable maps one or more keys to this value. 如果Hashtable中有一个或多个key映射到该值,返回true。

Note that this method is identical in functionality to contains (which predates the Map interface). 注意该方法和contains(其早于Map接口)功能上相同。

Specified by:
containsValue in interface Map
Parameters:
value - value whose presence in this Hashtable is to be tested. 测试Hashtable中是否存在的值。
Returns:
true if this map maps one or more keys to the specified value. 如果Hashtable中有一个或多个key映射到该值,返回true。
Throws:
NullPointerException - if the value is null. 如果值为null时抛出。
Since:
1.2
See Also:
Map

containsKey

public boolean containsKey(Object key)
Tests if the specified object is a key in this hashtable. 测试指定对象是否是哈希表中的key。

Specified by:
containsKey in interface Map
Parameters:
key - possible key. 可能的key。
Returns:
true if and only if the specified object is a key in this hashtable, as determined by the equals method; false otherwise. 只有当指定对象以equals方法判断是哈希表的key时,返回true,否则返回false。
Throws:
NullPointerException - if the key is null. 如果key为null时抛出。
See Also:
contains(Object)

get

public Object get(Object key)
Returns the value to which the specified key is mapped in this hashtable. 返回哈希表中指定key的映射值。

Specified by:
get in interface Map
Specified by:
get in class Dictionary
Parameters:
key - a key in the hashtable. 哈希表中的key。
Returns:
the value to which the key is mapped in this hashtable; null if the key is not mapped to any value in this hashtable. 哈希表中key所映射的值,如果没有映射到任何值,返回null。
Throws:
NullPointerException - if the key is null. 如果key为null时抛出。
See Also:
put(Object, Object)

rehash

protected void rehash()
Increases the capacity of and internally reorganizes this hashtable, in order to accommodate and access its entries more efficiently. This method is called automatically when the number of keys in the hashtable exceeds this hashtable's capacity and load factor. 增加哈希表的容量,内部调整,以便更有效地容纳和访问项。 当哈希表中key的数量超出哈希表的容量和加载因子时自动调用该方法。


put

public Object put(Object key,                  Object value)
Maps the specified key to the specified value in this hashtable. Neither the key nor the value can be null. 向哈希表添加指定key和指定值的映射。key和值都不能为null。

The value can be retrieved by calling the get method with a key that is equal to the original key. 可以通过调用get方法(key等于原key)来获得值。

Specified by:
put in interface Map
Specified by:
put in class Dictionary
Parameters:
key - the hashtable key. 哈希表中的key。
value - the value. 值。
Returns:
the previous value of the specified key in this hashtable, or null if it did not have one. 哈希表中指定key的原值,如果没有返回null。
Throws:
NullPointerException - if the key or value is null. 如果key或值为null时抛出。
See Also:
Object.equals(Object), get(Object)

remove

public Object remove(Object key)
Removes the key (and its corresponding value) from this hashtable. This method does nothing if the key is not in the hashtable. 从哈希表中删除key和相应的值。如果哈希表中没有该key,方法不做任何事。

Specified by:
remove in interface Map
Specified by:
remove in class Dictionary
Parameters:
key - the key that needs to be removed. 要删除的key。
Returns:
the value to which the key had been mapped in this hashtable, or null if the key did not have a mapping. 哈希表中key映射的值,如果该key没有映射,返回null。
Throws:
NullPointerException - if the key is null. 如果key为null时抛出。

putAll

public void putAll(Map t)
Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map. 将指定Map的所有映射拷贝至哈希表。如果哈希表中存在指定Map中的任意key,将替换原有的映射。

Specified by:
putAll in interface Map
Parameters:
t - Mappings to be stored in this map. 要存储在当前map中的映射。
Throws:
NullPointerException - if the specified map is null. 如果指定map为null时抛出。
Since:
1.2

clear

public void clear()
Clears this hashtable so that it contains no keys. 清空哈希表,使它不含key。

Specified by:
clear in interface Map

clone

public Object clone()
Creates a shallow copy of this hashtable. All the structure of the hashtable itself is copied, but the keys and values are not cloned. This is a relatively expensive operation. 创建一个哈希表的浅拷贝。哈希表自身的结构被拷贝,但是键和值不拷贝。 该操作的代价较高。

Overrides:
clone in class Object
Returns:
a clone of the hashtable. 哈希表的克隆。
See Also:
Cloneable

toString

public String toString()
Returns a string representation of this Hashtable object in the form of a set of entries, enclosed in braces and separated by the ASCII characters "" (comma and space). Each entry is rendered as the key, an equals sign =, and the associated element, where the toString method is used to convert the key and element to strings. 以一组项的形式返回哈希表对象的字符串形式,以大括号封装,以ASCII符“, ”(逗号和空格)分隔。 每一项表示为key,等号=,和关联元素,这里toString方法被用来将key和元素转换成字符串。

Overrides to toString method of Object. 重写了Object的toString方法。

Overrides:
toString in class Object
Returns:
a string representation of this hashtable. 哈希表的字符串形式。

keySet

public Set keySet()
Returns a Set view of the keys contained in this Hashtable. The Set is backed by the Hashtable, so changes to the Hashtable are reflected in the Set, and vice-versa. The Set supports element removal (which removes the corresponding entry from the Hashtable), but not element addition. 返回Hashtable中key的set视图。它由Hashtable得出,所以Hashtable的变化会影响Set。Set支持 元素删除(从Hashtable中删除相应的项),但是不支持元素添加。

Specified by:
keySet in interface Map
Returns:
a set view of the keys contained in this map. map所含key的set视图。
Since:
1.2

entrySet

public Set entrySet()
Returns a Set view of the entries contained in this Hashtable. Each element in this collection is a Map.Entry. The Set is backed by the Hashtable, so changes to the Hashtable are reflected in the Set, and vice-versa. The Set supports element removal (which removes the corresponding entry from the Hashtable), but not element addition. 返回Hashtable中项的set视图。集合中每一个元素为Map.Entry。 它由Hashtable得出,所以Hashtable的变化会影响Set。Set支持 元素删除(从Hashtable中删除相应的项),但是不支持元素添加。

Specified by:
entrySet in interface Map
Returns:
a set view of the mappings contained in this map. map所含映射的set视图。
Since:
1.2
See Also:
Map.Entry

values

public Collection values()
Returns a Collection view of the values contained in this Hashtable. The Collection is backed by the Hashtable, so changes to the Hashtable are reflected in the Collection, and vice-versa. The Collection supports element removal (which removes the corresponding entry from the Hashtable), but not element addition. 返回Hashtable中值的Collection视图。 它由Hashtable得出,所以Hashtable的变化会影响Collection。Collection支持 元素删除(从Hashtable中删除相应的项),但是不支持元素添加。

Specified by:
values in interface Map
Returns:
a collection view of the values contained in this map. map所含值的collection视图。
Since:
1.2

equals

public boolean equals(Object o)
Compares the specified Object with this Map for equality, as per the definition in the Map interface. 根据Map接口的定义将指定对象与当前Map比较相等性。

Specified by:
equals in interface Map
Overrides:
equals in class Object
Parameters:
o - object to be compared for equality with this Hashtable 同当前Hashtable比较相等性的对象
Returns:
true if the specified Object is equal to this Map. 如果指定对象等于当前Map,返回true。
Since:
1.2
See Also:
Map.equals(Object)

hashCode

public int hashCode()
Returns the hash code value for this Map as per the definition in the Map interface. 根据Map接口的定义返回此Map的哈希码值。

Specified by:
hashCode in interface Map
Overrides:
hashCode in class Object
Returns:
a hash code value for this object. 该对象的哈希码值。
Since:
1.2
See Also:
Map.hashCode()

Overview Package  Class Use Tree Deprecated Index Help JavaTM 2 Platform
Std. Ed. v1.4.2
 PREV CLASS   NEXT CLASSFRAMES    NO FRAMES     All Classes SUMMARY: NESTED | FIELD | CONSTR | METHODDETAIL: FIELD | CONSTR | METHOD
Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.

原创粉丝点击