資源簡介
[問題描述]
設計散列表實現電話號碼查找系統。
[基本要求]
[需求分析]
(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??[]?hashTable;
public?NameHashTable?()?{
step?=?997;
hashTable?=?new?ArrayList[997];
for?(?int?i?=?0;?i?997;?i++?)?{
hashTable[i]?=?new?ArrayList??();
}
}?//?end?method?NameHashTable
public?boolean?add?(?String?key?SomeOne?value?)?{
int?index?=?Math.abs?(?key.hashCode?()?)?%?step;
for?(?int?i?=?0;?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? 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? 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? 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分析
評論
共有 條評論