现在的位置: 首页 > 综合 > 正文

java处理重复电话号码文件(修改版)

2013年03月05日 ⁄ 综合 ⁄ 共 5554字 ⁄ 字号 评论关闭

在网上看到了一个小程序,修改了其中的bug(主要是没有关闭一些InputStreamReader之类的东西)

修改为可以查找重复字符串,不仅仅是手机号.测试了一个文件,50万条带重复字符串的文件(每行一串字符,是移动的号段表)耗时 2515毫秒,实际效率应该比这个低,因为号段已经排过序了.

代码如下:

 

 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Vector;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
 * 
 * 
 * 
 * 
@author
 * @modify hallywang 2006-11-18
 * 
 
*/


public class Main extends javax.swing.JFrame {

    
/**
     * 
     
*/

    
private static final long serialVersionUID = 1L;

    
private Vector vectors = new Vector();

    String[] resultArr 
= null;

    
/** Creates new form Main */

    
public Main() {

        initComponents();

        
this.setSize(405400);

        
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(
00400280);

        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
<

抱歉!评论已关闭.