服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java写的查找重复电话号码程序

开发工具:netbeans 4.1

说明:

此程序大体流程

1。打开一个含有多个重复记录的电话号码的文件。

2。系统按行读取文件并添加到向量vectors中,注意此时将电话号码转为long型。

3。新建一个long型数组,大小为vectors.size。并将vectors数据复制到这个数组中。

4。对上面的数组进行排序。

5。新建一个long型数组二,大小为vectors.size。

6。循环遍历数组一,并对比是否数组二中已有数据,如没有,则添加到数组二,否则跳过。

测试一万条记录的执行时间为不到2s。

/*

* main.java

*

* created on 2006年2月13日, 下午2:07

*/

package phoneutil;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.util.*;

import javax.swing.*;

/**

*

* @author http://www.tot.name

*/

public class main extends javax.swing.jframe {

private vector vectors=new vector();

long[] resultarr=null;

/** creates new form main */

public main() {

initcomponents();

this.setsize(405,400);

this.settitle("电话号码查询");

this.setresizable(false);

}

/** this method is called from within the constructor to

* initialize the form.

* warning: do not modify this code. the content of this method is

* always regenerated by the form editor.

*/

// //gen-begin:initcomponents

private void initcomponents() {

jfilechooser1 =new jfilechooser();

desktoppane = new javax.swing.jdesktoppane();

jpanel1 = new javax.swing.jpanel();

jscrollpane1 = new javax.swing.jscrollpane();

jscrollpane2 = new javax.swing.jscrollpane();

jtextarea1 = new javax.swing.jtextarea();

jtextarea2 = new javax.swing.jtextarea();

menubar = new javax.swing.jmenubar();

filemenu = new javax.swing.jmenu();

openmenuitem = new javax.swing.jmenuitem();

savemenuitem = new javax.swing.jmenuitem();

saveasmenuitem = new javax.swing.jmenuitem();

exitmenuitem = new javax.swing.jmenuitem();

editmenu = new javax.swing.jmenu();

cutmenuitem = new javax.swing.jmenuitem();

copymenuitem = new javax.swing.jmenuitem();

pastemenuitem = new javax.swing.jmenuitem();

deletemenuitem = new javax.swing.jmenuitem();

helpmenu = new javax.swing.jmenu();

contentmenuitem = new javax.swing.jmenuitem();

aboutmenuitem = new javax.swing.jmenuitem();

setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);

jpanel1.setlayout(new java.awt.borderlayout());

jtextarea1.setcolumns(35);

jtextarea1.setrows(15);

jtextarea1.settabsize(4);

jscrollpane1.setviewportview(jtextarea1);

jpanel1.add(jscrollpane1, java.awt.borderlayout.center);

jtextarea2.setcolumns(35);

jtextarea2.setrows(5);

jscrollpane2.setviewportview(jtextarea2);

jpanel1.add(jscrollpane2, java.awt.borderlayout.south);

jpanel1.setbounds(0, 0, 400, 280);

desktoppane.add(jpanel1, javax.swing.jlayeredpane.default_layer);

getcontentpane().add(desktoppane, java.awt.borderlayout.center);

filemenu.settext("文件");

filemenu.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

filemenuactionperformed(evt);

}

});

openmenuitem.settext("打开");

openmenuitem.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

openmenuitemactionperformed(evt);

}

});

filemenu.add(openmenuitem);

savemenuitem.settext("保存");

savemenuitem.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

savemenuitemactionperformed(evt);

}

});

filemenu.add(savemenuitem);

//saveasmenuitem.settext("save as ...");

//filemenu.add(saveasmenuitem);

exitmenuitem.settext("exit");

exitmenuitem.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

exitmenuitemactionperformed(evt);

}

});

filemenu.add(exitmenuitem);

menubar.add(filemenu);

editmenu.settext("edit");

cutmenuitem.settext("cut");

editmenu.add(cutmenuitem);

copymenuitem.settext("copy");

editmenu.add(copymenuitem);

pastemenuitem.settext("paste");

editmenu.add(pastemenuitem);

deletemenuitem.settext("delete");

editmenu.add(deletemenuitem);

menubar.add(editmenu);

helpmenu.settext("help");

contentmenuitem.settext("contents");

helpmenu.add(contentmenuitem);

aboutmenuitem.settext("about");

aboutmenuitem.addactionlistener(new java.awt.event.actionlistener() {

public void actionperformed(java.awt.event.actionevent evt) {

aboutmenuitemactionperformed(evt);

}

});

helpmenu.add(aboutmenuitem);

menubar.add(helpmenu);

setjmenubar(menubar);

pack();

}

// //gen-end:initcomponents

private void aboutmenuitemactionperformed(java.awt.event.actionevent evt) {//gen-first:event_aboutmenuitemactionperformed

// todo 将在此处添加您的处理代码:

joptionpane.showmessagedialog(null,"find phone num by repeated.","关于",joptionpane.warning_message);

}//gen-last:event_aboutmenuitemactionperformed

private void openmenuitemactionperformed(java.awt.event.actionevent evt) {//gen-first:event_openmenuitemactionperformed

string strfileopen="";

string linestr=null;

string returnstr=null;

stringbuffer sbf=new stringbuffer();

stringbuffer bf2=new stringbuffer();

long[] intarr=null;

//jfilechooser1 =new jfilechooser();

try{

if(this.jfilechooser1.approve_option==this.jfilechooser1.showopendialog(this)){

strfileopen=this.jfilechooser1.getselectedfile().getpath();

this.settitle(strfileopen);

try{

file files=new file(strfileopen.tostring());

vectors.removeallelements();

inputstreamreader read =new inputstreamreader(new fileinputstream(files),"gb2312");

//bufferedreader br=new bufferedreader(new filereader(filepath.tostring()));

bufferedreader br=new bufferedreader(read);

while((linestr=br.readline())!=null){

//returnstr=returnstr+line+"/n/r";

//line=br.readline();

//处理字符并添加到向量中

vectors.add(new long(linestr));

//sbf.append("/n/r");

}

intarr=new long[vectors.size()];

resultarr=new long[vectors.size()];

vectors.copyinto(intarr);

arrays.sort(intarr);

int startindex=1;

resultarr[0]=intarr[0];

//system.out.println(resultarr[0]+":"+intarr[0]);

for(int j=1;j

//system.out.println(resultarr[startindex-1]+":"+intarr[j]);

if(resultarr[startindex-1].compareto(intarr[j])==0){

bf2.append(intarr[j]+"/n/r");

}

else{

sbf.append(intarr[j]+"/n/r");

resultarr[startindex]=intarr[j];

startindex++;

}

//startindex++;

}

jtextarea1.settext("处理后的结果为:/n/r"+sbf.tostring());

jtextarea2.settext("重复的电话号码有:/n/r"+bf2.tostring());

}

catch(ioexception e){

system.out.println("file open error"+e.getmessage());

}

//this.statubar.settext("open file:"+this.filename);

}

else

{

return ;

}

}

catch(exception e){

//this.statubar.settext("error open:"+e.getmessage());

}

}//gen-last:event_openmenuitemactionperformed

private void savemenuitemactionperformed(java.awt.event.actionevent evt) {//gen-first:event_openmenuitemactionperformed

file filename=null;

string strfileopen=null;

printwriter output=null;

try{

if(this.jfilechooser1.approve_option==this.jfilechooser1.showsavedialog(this)){

strfileopen=this.jfilechooser1.getselectedfile().getpath();

this.settitle(strfileopen);

filename = jfilechooser1.getselectedfile();

this.settitle("保存至:"+filename.getname());

try{

output = new printwriter(filename);

for(int i=0;i

if(resultarr[i]!=null){

output.write(resultarr[i]+"/r/n");

}

}

jtextarea1.settext("成功保存至:/n/r"+strfileopen);

}

catch(ioexception e){

}

finally{

output.close();

output = null;

}

}

}

catch(exception e){

}

}

//gen-last:event_openmenuitemactionperformed

private void filemenuactionperformed(java.awt.event.actionevent evt) {//gen-first:event_filemenuactionperformed

// todo 将在此处添加您的处理代码:

}//gen-last:event_filemenuactionperformed

private void exitmenuitemactionperformed(java.awt.event.actionevent evt) {//gen-first:event_exitmenuitemactionperformed

system.exit(0);

}//gen-last:event_exitmenuitemactionperformed

//交换位置

private void swap(int loc1, int loc2){

object tmp = vectors.elementat(loc1);

vectors.setelementat(vectors.elementat(loc2),loc1);

vectors.setelementat(tmp,loc2);

}

/**

* @param args the command line arguments

*/

public static void main(string args[]) {

java.awt.eventqueue.invokelater(new runnable() {

public void run() {

new main().setvisible(true);

}

});

}

private javax.swing.jfilechooser jfilechooser1;

// 变量声明 - 不进行修改//gen-begin:variables

protected javax.swing.jmenuitem aboutmenuitem;

protected javax.swing.jmenuitem contentmenuitem;

protected javax.swing.jmenuitem copymenuitem;

protected javax.swing.jmenuitem cutmenuitem;

protected javax.swing.jmenuitem deletemenuitem;

protected javax.swing.jdesktoppane desktoppane;

protected javax.swing.jmenu editmenu;

protected javax.swing.jmenuitem exitmenuitem;

protected javax.swing.jmenu filemenu;

protected javax.swing.jmenu helpmenu;

protected javax.swing.jpanel jpanel1;

protected javax.swing.jscrollpane jscrollpane1;

protected javax.swing.jscrollpane jscrollpane2;

protected javax.swing.jtextarea jtextarea1;

protected javax.swing.jtextarea jtextarea2;

protected javax.swing.jmenubar menubar;

protected javax.swing.jmenuitem openmenuitem;

protected javax.swing.jmenuitem pastemenuitem;

protected javax.swing.jmenuitem saveasmenuitem;

protected javax.swing.jmenuitem savemenuitem;

// 变量声明结束//gen-end:variables

}

附图:

java写的查找重复电话号码程序(图一)

java写的查找重复电话号码程序(图二)

扫描关注微信公众号