java:哈希表的原理与用法?

发布网友

我来回答

3个回答

懂视网

hashtable底层原理如下:

  

  1、HashTable类中,保存实际数据的,依然是Entry对象。其数据结构与HashMap是相同的。

  

  2、HashTable类继承自Dictionary类,实现了三个接口,分别是Map,Cloneable和java.io.Serializable。

  

  3、HashTable中的主要方法,如put,get,remove和rehash等,与HashMap中的功能相同。

  

  hashtable类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals方法。Hashtable的实例有两个参数影响其性能:初始容量和加载因子。Hashtable的实例有两个参数影响其性能:初始容量和加载因子。容量是哈希表中桶的数量,初始容量就是哈希表创建时的容量。注意,哈希表的状态为open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索。加载因子是对哈希表在其容量自动增加之前可以达到多满的一个尺度。初始容量和加载因子这两个参数只是对该实现的提示。关于何时以及是否调用rehash方法的具体细节则依赖于该实现。

热心网友

Hashtable,原理嘛就不知道了。只知道说其是提供了两个集合之间映射的能力,并且拥有每个元素的查询时间近乎恒定的特性。两个集合之间映射的能力,简单的说,就是像是存放系统属性的Properties类一样(该类继承自Hashtable),Properties类中将String映射到String,你可以用setProperty(String key, String value)把一对值对(key,value)存入Properties中,用getProperty(String key) 取得key对应的value值。用System.getProperties()你可以获得一个系统属性的哈希表,直接println出来你就可以看到整个哈希表所构成的集合了。第一个元素应该是java.runtime.name=Java(TM) SE Runtime Environment这个。这里你可以看得出"java.runtime.name"被映射到了"Java(TM) SE Runtime Environment"。在这里你也可以调用System.getProperties().getProperty("java.runtime.name")得到字符串"Java(TM) SE Runtime Environment"。这就是哈希表所提供的功能了,将一个元素映射到另一个元素,这之间的映射所构成的集合就是哈希表了。
你可以自己看看API文档,里面有详细的解说,不过嘛,嘿嘿,中文版的那个翻译啊,哎,惨不忍睹啊,感触最多的是——主谓宾都难找啊。

热心网友

这个你需要好好看看数据结构了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com