u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口
数组和向量都可以存储对象,但对象的存储位置是随机的,也就是说对象本身与其存储位置
之间没有必然的联系。当要查找一个对象时,只能以某种顺序(如顺序查找或二分查找)与
各个元素进行比较,当数组或向量中的元素数量很多时,查找的效率会明显的降低。
一种有效的存储方式,是不与其他元素进行比较,一次存取便能得到所需要的记录。这就需
要在对象的存储位置和对象的关键属性(设为k)之间建立一个特定的对应关系(设为f),
使每个对象与一个唯一的存储位置相对应。在查找时,只要根据待查对象的关键属性k计
算f(k)的值即可。如果此对象在集合中,则必定在存储位置f(k)上,因此不需要与集合中的
其他元素进行比较。称这种对应关系f为哈希(hash)方法,按照这种思想建立的表为哈
Java使用哈希表类(Hashtable)来实现哈希表,以下是与哈希表相关的一些概念:
容量(Capacity):Hashtable的容量不是固定的,随对象的加入其容量也可以自动增长。
关键字(Key):每个存储的对象都需要有一个关键字,key可以是对象本身,也可以是对
象的一部分(如某个属性)。要求在一个Hashtable中的所有关键字都是唯一的。
哈希码(HashCode):若要将对象存储到Hashtable上,就需要将其关键字key映射到
项(Item):Hashtable中的每一项都有两个域,分别是关键字域key和值域value(存储
的对象)。Key和value都可以是任意的Object类型的对象,但不能为空。
装填因子(LoadFactor):装填因子表示为哈希表的装满程度,其值等于元素数比上哈希表