资源简介
[问题描述]
设计散列表实现电话号码查找系统。
[基本要求]
[需求分析]
(1)设每个记录有下列数据项: 电话号码、用户名、地址;
(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
(3)采用一定的方法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)查找并显示给定用户名的记录。
整个系统必须满足系统功能要求;设计不同的散列函数,比较冲突率;在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

代码片段和文件信息
/*
* To change this template choose Tools | Templates
* and open the template in the editor.
*/
package phoneNumberSeek;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrator
*/
public class NameHashTable {
private final String filePath = “data\\nameHash.dat“;
private int step;
List < SomeOne > [] hashTable;
public NameHashTable () {
step = 997;
hashTable = new ArrayList[997];
for ( int i = 0; i < 997; i++ ) {
hashTable[i] = new ArrayList < SomeOne > ();
}
} // end method NameHashTable
public boolean add ( String key SomeOne value ) {
int index = Math.abs ( key.hashCode () ) % step;
for ( int i = 0; i < hashTable[index].size (); i++ ) {
if ( hashTable[index].get ( i ).getName ().equals ( key ) ) {
return false;
} // end if
}// end for
hashTable[index].add ( value );
return true;
} // end method add
public SomeOne get ( String key ) {
int index = Math.abs ( key.hashCode () ) % step;
for ( int i = 0; i < hashTable[index].size (); i++ ) {
if ( hashTable[index].get ( i ).getName ().equals ( key ) ) {
return hashTable[index].get ( i );
} // end if
} // end for
return null;
} // end method getValue
public void modify ( String key SomeOne one ) {
int index = Math.abs ( key.hashCode () ) % step;
for ( int i = 0; i < hashTable[index].size (); i++ ) {
if ( hashTable[index].get ( i ).getName ().equals ( key ) ) {
hashTable[index].set ( i one );
} // end if
} // end for
} // end method modify
public SomeOne delete ( String key ) {
int index = Math.abs ( key.hashCode () ) % step;
for ( int i = 0; i < hashTable[index].size (); i++ ) {
if ( hashTable[index].get ( i ).getName ().equals ( key ) ) {
SomeOne temp = hashTable[index].get ( i );
hashTable[index].remove ( i );
return temp;
} // end if
} // end for
return null;
} // end method delete
public void load () {
try {
// file input stream
FileInputStream fis = new FileInputStream ( filePath );
// object input stream
objectInputStream ois = new objectInputStream ( fis );
// read bookList
hashTable = ( ArrayList [] ) ois.readobject ();
ois.close ();
} catch ( Exception e ) {
System.out.println ( “读取数据失败“ );
} // end try
} // end method read
public void save () {
try {
// file output stream
FileOutputStream fos = new FileOutputStream ( filePath );
// object output stream
objectOutputStream oos = new objectOutputStream ( fos );
// save books.dat
oos.writeobject ( hashTable );
oos.close ();
} catch ( Exception e ) {
System.out.println ( “保存数据失败“ );
} // end try
} // end method write
// public static void main ( String [] args ) {
//
// NameHashTable name = new NameHashTable ();
// name.save ();
// }
} // end class NameHashTabl
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3027 2011-01-09 21:51 java 电话号码查询系统(哈希表)\NameHashTable.java
文件 2798 2011-01-09 21:51 java 电话号码查询系统(哈希表)\NumberHashTable.java
文件 22569 2010-12-24 11:11 java 电话号码查询系统(哈希表)\PhoneTable.java
文件 2299 2010-12-24 11:11 java 电话号码查询系统(哈希表)\PhoneTableModel.java
文件 922 2010-12-24 11:08 java 电话号码查询系统(哈希表)\SomeOne.java
目录 0 2011-08-25 16:19 java 电话号码查询系统(哈希表)
----------- --------- ---------- ----- ----
31615 6
- 上一篇:android客户端向java服务器端上传文件完整版
- 下一篇:Makefile分析
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论