- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hashtables提供了一个很有用的方法可以使应用程序的性能达到最佳。 ??? Hashtables(哈希表)在计算机领域中已不是一个新概念了。它们是用来加快计算机的处理速度的,用当今的标准来处理,速度非常慢,而它们可以让你在查询许多数据条目时,很快地找到一个特殊的条目。尽管现代的机器速度已快了几千倍,但是为了得到应用程序的最佳性能,hashtables仍然是个很有用的方法。 ??? 设想一下,你有一个包含约一千条记录的数据文件,比如一个小企业的客户记录,还有一个程序,它把记录读到内存中进行处理。每个记录包含一个唯一的五位数的客户ID号、客户名字、地址、帐户结余等等。假设记录不是按客户ID号顺序分类的,所以,如果程序要将客户ID号作为“key” 来查找一个特殊的客户记录,唯一的查找方法就是连续地有哪些信誉好的足球投注网站每个记录。有时侯,它会很快找到你需要的记录;但有时侯,在程序找到你需要的记录前,它几乎已有哪些信誉好的足球投注网站到了最后一条记录。如果要在1,000条记录中有哪些信誉好的足球投注网站,那么查找任何一条记录都需要程序平均查核500.5 ((1000 + 1 )/2)条记录。如果你常需要查找数据,你应该需要一个更快的方法来找到一条记录。
一种加快有哪些信誉好的足球投注网站的方法就是把记录分成几段,这样,你就不用有哪些信誉好的足球投注网站一个很大的列表了,而是有哪些信誉好的足球投注网站几个短的列表。对于我们数字式的客户ID号,你可以建10个列表,以0开头的ID号组成一个列表,以1开头的ID号组成一个列表,依此类推。那么要查找客户ID号38016,你只需要有哪些信誉好的足球投注网站以3开头的列表就行了。如果有1,000条记录,每个列表的平均长度为100(1,000条记录被分成10个列表),那么有哪些信誉好的足球投注网站一条记录的平均比较次数就降到了约50(见图1)。 当然,如果约十分之一的客户号是以0开头的,另外十分之一是以1开头的,等等,那么这种方法会很适合。如果90%的客户号以0开头,那么那个列表就会有900条记录,每次查找平均需要进行450次比较。另外,程序需要执行的有哪些信誉好的足球投注网站有90%都是针对以0开头的号码的。因此,平均比较数就大大超过简单数学运算的范围了。 ??? 如果我们可以按这样一种方式在我们的列表中分配记录,情况就会好一些,即每个列表约有相同条目的记录,而不管键值中数字的分布。我们需要一种方法能够把客户号码混合到一起并更好地分布结果。例如,我们可以取号码中的每位数,乘以某个大的数(随着数字位置的不同而不同), 然后将结果相加产生一个总数,把这个数除以10,并将余数作为索引值(index)(除数相同的分到一组)。当读入记录时,程序在客户号码上运行这个哈希(hash) 函数来确定记录属于哪个列表。当用户需要查询时,将同一个哈希函数作为一个“key”用于客户号码,这样就可以有哪些信誉好的足球投注网站正确的列表了。 像这样的一个数据结构就称为一个哈希表(hashtable)。 Java中的Hashtables ??? Java包含两个类,java.util.Hashtable 和java.util.HashMap,它们提供了一个多种用途的hashtable机制。这两个类很相似,通常提供相同的公有接口。但它们的确有一些重要的不同点,我在后面会讲到。 Hashtable和HashMap对象可以让你把一个key和一个value结合起来,并用put() 方法把这对key/value输入到表中。然后你可以通过调用get()方法,把key作为参数来得到这个value(值)。只要满足两个基本的要求,key和value可以是任何对象。注意,因为key和value必须是对象,所以原始类型(primitive types)必须通过运用诸如Integer(int)的方法转换成对象。 ??? 为了将一个特定类的对象用做一个key,这个类必须提供两个方法,equals() 和 hashCode()。这两个方法在java.lang.Object中,所以所有的类都可以继承这两个方法;但是,这两个方法在Object类中的实现一般没什么用,所以你通常需要自己重载这两个方法。Equals()方法把它的对象同另一个对象进行比较,如果这两个对象代表相同的信息,则返回true。该方法也查看并确保这两个对象属于相同的类。如果两个参照对象是完全一样的对象,Object.equals()返回true,这就说明了为什么这个方法通常不是很适合的原因。在大多数情况下,你需要一个方法来一个字段一个字段地进行比较,所以我们认为代表相同数据的不同对象是相等的。 ??? HashCode()方法通过运用对象的内容执行一个哈希函数来生成一个int值。Hashtable和HashMap用这个值来算出一对key/value位于哪个bucket(哈希元)(或列表)中。作为例子,我们可以查看一下String 类,因为它有自己的方法来实现这两个方法。Strin
您可能关注的文档
- 圣斗士星矢各集的名称.doc
- 圣爱天堂赛客小游戏:不愤怒的小鸟2.doc
- 圣诞打折机票购买全攻略.docx
- 圣诞节是西方社会的传统节日.doc
- 圣诞节送男友什么礼物好?送老公?送男生?礼意久久教你如何捕获他的心.doc
- 圣鹿板材衣柜销售体系.doc
- 在2012开学典礼暨“争当雷锋精神传人弘扬社会文明新风”.doc
- 在4线格中写出下列字母的大写或小写.doc
- 在70本名著中抄摘的70句经典的话.doc
- 在ActiveDirectory域控制器中设置共享文件夹访问权限.doc
- 医疗器械创新设计项目智能制造方案(参考范文).docx
- 感恩教育主题班会PPT课件(带背景音乐 动态可修改).pptx
- 2024-2025学年天津市西青区七年级上学期期末考英语试卷含详解.docx
- 2.3资本结构决策.pptx
- 感恩教育主题班会PPT课件(带背景音乐 动态可修改).pptx
- 航空航天零部件加工项目智能制造方案.docx
- 小学英语四年级第一课时《at the farm》教育教学课件.pptx
- 2024-2025学年湖南省长沙市师大附中教育集团联考九年级上学期期末考试英语试卷含详解.docx
- 物流自动化仓储系统项目智能制造手册(模板).docx
- 纳米材料制备工艺项目智能制造手册(模板范文).docx
最近下载
- 2020上六年级学业水平测试道德与法治•双向细目表.doc
- 福清市2023-2024学年小学五年级上学期统考语文期末质检试卷及参考答案、评分标准.pdf VIP
- 幼儿园-大班上册-语言活动-课件:《年的传说》PPT.pptx
- 《大自然的语言》ppt课件共32张.pptx VIP
- 卫生院2023年工作总结2024年工作计划.docx
- 学校岗位流程图.doc
- 2023年湘潭大学信息管理与信息系统专业《数据库概论》科目期末试卷B(有答案).docx VIP
- 2023年湘潭大学信息管理与信息系统专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2024年第十一届“鹏程杯”六年级数学邀请赛复赛试卷.pdf VIP
- 典型事故四:中石油抚顺石化“1.19”重油催化装置爆炸事故.pdf
文档评论(0)