首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区
|
java写的查找重复电话号码程序
出自:http://www.tot.name
开发工具: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. */ // 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(); } // 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 } 相关链接
频道热门
热门新闻
|
精粹集锦
特别推荐
频道精选
|