注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

Hashtable  

2011-11-10 19:21:03|  分类: JAVA集合容器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
其实在Java2之前,Java是没有完整的集合框架的。它只有一些简单的可以自扩展的容器类,比如Vector,Stack,Hashtable等。  
java.util.Hashtable与Java2中的Map类似,可以看成一种关联或映射数组,可以将两个或多个毫无关系的对象相关联。
它的基本目标是实现两个或多个对象之间进行关联。
  
举一个现实生活中的例子,比如我们说美国白宫时,指的就是在美国华盛顿的总统办公大楼, 为什么一说到美国白宫,总统办公大楼呢?这是我们人为的对“美国白宫”和总统办公大楼进行了关联,
  本来“美国白宫”就是四个普通的文字,现在却有了不同的含义。
  在Java中我们就可以用String定义一个内容为“美国白宫”的对象变量,
  在定义一个总统大楼的对象变量,把它们进行关联,这就是Hashtable的用意
  通过使用pub(Object key,Object value)方法把两个对象进行关联,需要时用get(Object key)取得与key关联的值对象。
  还可以查询某个对象的索引值等等。值得说明的这里的get方法查找一个对象时与Vector中的get方法在内部实现时有很大不同,
  在一个Hashtable中查找一个键对象要比在一个Vector中快的多。这是因为Hashtable使用了一种哈希表的技术(在数据结构中有详细讲解),
  在Java每个对象缺省都有一个通过Object的hashCode()方法获得的哈希码,Hashtable就是利用这个哈希实现快速查找键对象的。
  注意1:Hashtable is a synchronized implementation of Map. 
  它是线程安全的,它的很多方法都是synchronized的,它也是通过锁(自身的)来实现线程安全,其效率也很低
  注意2:其大小也是动态增长的。
  注意3Neither keys nor values can be null. (Use HashMap or LinkedHashMap if you need null keys or values.)  
  注意4:如果对一个key连续放入多个value.那么key所对应的value是最后放入的那个。
构造函数
Public Constructors
Hashtable()
Constructs a new Hashtable using the default capacity and load factor.
Hashtable(int capacity)
Constructs a new Hashtable using the specified capacity and the default load factor.
Hashtable(int capacity, float loadFactor)
Constructs a new Hashtable using the specified capacity and load factor.
Hashtable(Map<? extends K, ? extends V> map)
Constructs a new instance of Hashtable containing the mappings from the specified map.
主要函数
synchronized voidclear()
Removes all key/value pairs from this Hashtable, leaving the size zero and the capacity unchanged.
synchronized Objectclone()
Returns a new Hashtable with the same key/value pairs, capacity and load factor.
booleancontains(Object value)
Returns true if this Hashtable contains the specified object as the value of at least one of the key/value pairs.
synchronized booleancontainsKey(Object key)
Returns true if this Hashtable contains the specified object as a key of one of the key/value pairs.
synchronized booleancontainsValue(Object value)
Searches this Hashtable for the specified value.
synchronized Enumeration<V>elements()
Returns an enumeration on the values of this Hashtable.
synchronized Set<Entry<K, V>>entrySet()
Returns a set of the mappings contained in this Hashtable.
synchronized booleanequals(Object object)
Compares this Hashtable with the specified object and indicates if they are equal.
synchronized Vget(Object key)
Returns the value associated with the specified key in this Hashtable.
synchronized inthashCode()
Returns an integer hash code for this object.
synchronized booleanisEmpty()
Returns true if this Hashtable has no key/value pairs.
synchronized Set<K>keySet()
Returns a set of the keys contained in this Hashtable.
synchronized Enumeration<K>keys()
Returns an enumeration on the keys of this Hashtable instance.
synchronized Vput(K key, V value)
Associate the specified value with the specified key in this Hashtable.
synchronized voidputAll(Map<? extends K, ? extends V> map)
Copies every mapping to this Hashtable from the specified map.
synchronized Vremove(Object key)
Removes the key/value pair with the specified key from this Hashtable.
synchronized intsize()
Returns the number of key/value pairs in this Hashtable.
synchronized StringtoString()
Returns the string representation of this Hashtable.
synchronized Collection<V>values()
Returns a collection of the values contained in this Hashtable.
示例1:
  Hashtable <String ,String> table=new Hashtable();
  table.put(key, value);
  table.put(key, value2);
  System.out.println("value:"+table.get(key));
  评论这张
 
阅读(794)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017