生活随笔
收集整理的這篇文章主要介紹了
java算法——哈希表 电话号码查询系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
電話號碼查詢系統功能:
(1)存儲聯系人(姓名 電話 地址)
(2)刪除聯系人
(3)根據姓名或者號碼查找聯系人
import java
.util
.Scanner
;
public class HashTest {public static void main(String
[] args
) {Scanner in
=new Scanner(System
.in
);Hashtable ht
=new Hashtable();String num
,name
,add
;String s
;char n
;System
.out
.println("歡迎使用電話號碼查詢系統! ");System
.out
.println("輸入 “1”:錄入 ");System
.out
.println("輸入 “2”:查找 ");System
.out
.println("輸入 “3”:刪除 ");System
.out
.println("輸入 “4”:退出系統 ");do {s
=in
.next();n
=s
.charAt(0);if(n
!='1'&&n
!='2'&&n
!='3'&&n
!='4') {System
.out
.println("錯誤!!!請重新輸入!");}switch(n
) {case '1':ht
.in();break;case '2':ht
.find();break;case '3':ht
.delete();break;}}while(n
!='4');System
.out
.println("歡迎使用本系統,再見!!! ");}
}class Hashtable extends hash{Scanner in
=new Scanner(System
.in
);int i
;String num
,name
,add
,jud
;hash
[] table
=new hash[7];public Hashtable(){for(i
=0;i
<7;i
++) {table
[i
]=new hash();}}public void in() {System
.out
.print("姓名 ");name
=in
.next();System
.out
.print("電話號碼 ");num
=in
.next();System
.out
.print("地址 ");add
=in
.next();table
[mod(num
)].inhash(name
,num
,add
);System
.out
.println("錄入成功!");}public void find() {System
.out
.println("通過姓名查找:1");System
.out
.println("通過電話查找:2");jud
=in
.next();if(jud
.equals("1")) {System
.out
.print("查找人姓名 ");name
=in
.next();for(i
=0;i
<7;i
++) {if(table
[i
].findname(name
)!=null
) {System
.out
.println("姓名:"+table
[i
].t
.name
+" 電話號碼:"+table
[i
].t
.num
+" 地址:"+table
[i
].t
.add
);jud
="";}}if(jud
.equals("1")) {System
.out
.println("查無此人!");}}else if(jud
.equals("2")) {System
.out
.print("查找電話 ");num
=in
.next();i
=mod(num
);if(table
[i
].findnum(num
)!=null
) { System
.out
.println("姓名:"+table
[i
].t
.name
+" 電話號碼:"+table
[i
].t
.num
+" 地址:"+table
[i
].t
.add
);jud
="";}if(jud
.equals("2")) {System
.out
.println("查無此人!");}}else {System
.out
.println("查無此人!");}}public void delete() {System
.out
.print("刪除聯系人姓名 ");name
=in
.next();for(i
=0;i
<7;i
++) {if(table
[i
].deletehash(name
)) {System
.out
.println("刪除成功!");} }if(i
==7) {System
.out
.println("查無此人!");}}public int mod(String num
) {int a
=0;for(int i
=0;i
<num
.length();i
++) {a
=Integer
.parseInt(num
.charAt(i
)+"");}return a
%7;}}
class hash{int n
;node head
=new node(null
,null
,null
);node t
;public hash() {n
=0;head
.next
=null
;}class node{String num
,name
,add
;node next
;public node(String name
,String num
,String add
) {this.num
=num
;this.name
=name
;this.add
=add
;next
=null
;}}public void inhash(String name
,String num
,String add
) {n
++;node no
=new node(name
,num
,add
);no
.next
=head
.next
;head
.next
=no
;}public node
findname(String name
) {t
=head
.next
;while(t
!=null
) {if(t
.name
.equals(name
)) {return t
;}else {t
=t
.next
;}}return null
;}public node
findnum(String num
) {t
=head
.next
;while(t
!=null
) {if(t
.num
.equals(num
)) {return t
;}else {t
=t
.next
;}}return null
;}public boolean deletehash(String name
) {node tde
=findname(name
);if(tde
!=null
) {t
=head
;while(t
.next
!=tde
) {t
=t
.next
;}t
.next
=tde
.next
;return true;}return false;}
}
總結
以上是生活随笔為你收集整理的java算法——哈希表 电话号码查询系统的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。