资源简介
[问题描述]
设计散列表实现电话号码查找系统。
[基本要求]
[需求分析]
(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分析
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论