`

java 对重复电话号码进行排除的优化(排序和前后对比)

 
阅读更多
1.先对10万数据排序;

2.对比前后两条数据 ;

3.筛选出正确数据。

package com.xxx.xxx;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Test2 {
    final static int _capacity = 1000000;
    final static Random rand = new Random(System.currentTimeMillis() + _capacity);
    static ArrayList<String> list = new ArrayList<String>(_capacity);
    static ArrayList<String> newlist = new ArrayList<String>(_capacity);

    public static void main(String[] args) throws InterruptedException {
        long ts = System.currentTimeMillis();
        int modVal = _capacity / 3;
        for (int i = 0; i < _capacity; i++) {
            rand.setSeed(i);
            list.add(Integer.toString(Math.abs(rand.nextInt() % modVal)));
        }
        ts = System.currentTimeMillis() - ts;
        // 生成一个100000条数据的list
        System.out.println("生成时间 :" + ts);
        test2();
    }

    static void test() {
        newlist.clear();
        int repetition = 0;
        long ts = System.currentTimeMillis();
        
        Collections.sort(list);
        String str = list.get(0);
        int max = list.size();
        for (int i = 1; i < max; i++) {
            if (str.equals(list.get(i))) {
                repetition++;
                continue;
            }
            newlist.add(str);
            str = list.get(i);
        }
        newlist.add(str);

        ts = System.currentTimeMillis() - ts;
        System.out.println("------ 排序检查方法 -------");
        System.out.println("查找时间 :" + ts);
        System.out.println("重复 :" + repetition);
        System.out.println("正确 :" + newlist.size());
    }
    
    
}




分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java课程设计 电话号码查询系统

    在本次的Java课程设计中,我们关注的是一个实用的电话号码查询系统。这个系统的核心功能是帮助用户管理和操作电话号码,包括查询、浏览、打印、添加、删除、备份以及修改等基本操作。在这个项目中,我们可以学习到多...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    java 冒泡排序法 PPT文档

    通过学习这个PPT,你将能够理解冒泡排序的基本思想,掌握其Java实现,以及在不同场景下的应用和优化。如果你是初学者,这个PPT将帮助你打下坚实的算法基础;如果你是经验丰富的开发者,回顾这些基础知识也会有助于...

    java 不重复的随机数序列

    如果知道范围和需要的随机数数量,可以预先初始化一个ArrayList,然后用随机数替换索引,最后对列表进行排序。这种方式避免了频繁的添加操作,可能更高效。 5. **结合`RandomSort.java`源代码分析**: `...

    Java排序(带图形界面)

    提供插入排序,选择排序,冒泡排序三种排序方法,对数据进行排序,并可以在图形界面演示排序过程。 执行语句:java sort &lt;输入方式&gt; &lt;图形界面/非图形界面选择&gt; &lt;待排序数列&gt; 例: java sort 0 643 323 12 3 523 23 ...

    Java生成不重复的任意位随机数

    巧用Java实现得到任意位永不重复的随机数,很经典的代码!

    java对比工具

    Java对比工具是一款专门用于比较Java源代码文件差异的实用程序,它可以帮助开发者高效地识别和理解两个版本之间代码的修改之处。在这个分享中,我们主要关注的是"Bcompare-zh-3.3.10.17762.exe"这个文件,这是一款名...

    java--JTable排序实例源码

    这个实例“java--JTable排序实例源码”提供了一个功能,允许用户通过点击表头对`JTable`中的数据进行排序。这种功能在处理大量数据时非常实用,使得用户能轻松地查看和理解数据。 首先,我们来深入了解一下`JTable`...

    java图形化界面实现的个人通讯录管理系统

    Java图形化界面实现的个人通讯录管理系统是一种基于Java技术开发的应用程序,主要用于管理和维护个人的联系人信息。这个系统提供了用户友好的图形用户界面(GUI),使得用户能够方便地进行个人信息管理和通讯录的...

    java多线程导出excel(千万级别)优化

    Java多线程导出Excel是处理大数据量时的一种高效策略,尤其在面对千万级别的数据时。传统的Apache POI库在处理大规模数据时可能会遇到栈溢出(StackOverflowError)和内存溢出(OutOfMemoryError)等问题,因为这些...

    中值滤波Java实现

    在Java中,可以使用`java.util.Arrays.sort()`方法对像素值进行排序,但因为排序操作的复杂度较高,可能会消耗大量时间。为了提高效率,可以考虑使用快速排序或者堆排序等更高效的算法。 在实际开发中,为了优化...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    Java OCR 图像智能字符识别技术,可识别中文

    3. 后处理:通过上下文信息、词典约束等手段,对初步识别的结果进行校正和优化。 在Java环境中,我们可以利用Java的JNI(Java Native Interface)技术,调用C++编写的OCR库,如OpenCV和Tesseract的C++接口,实现...

    java 冒泡算法和插入法排序,二分法查找

    遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经过交换慢慢“浮”到数列的顶端,就像水中的气泡最终会上升到水面一样。 插入排序则是一种简单...

    JAVA语音聊天一对一音频信号传输

    总结来说,实现Java语音聊天一对一音频信号传输,开发者需要掌握网络编程、音频处理、数据压缩以及性能优化等多个领域的知识,并在实际开发中不断调整和优化,以实现高效、稳定、高质量的语音通信。

    java 手机号码归属地查询代码

    可以通过在项目中添加此 form的代码,查询号码归属地

    java数据结构笔试题

    这些题目往往涉及对基本数据结构概念、排序算法和查找算法的理解和应用。本篇将深入探讨三种常见的数据结构笔试题目:二分查找、冒泡排序和插入排序,以及这些算法在Java中的实现。 首先,二分查找算法的运用是在...

    JAVA近百种算法大全

    4. 快速排序:利用分治策略,选取一个基准值,将数组分为两部分,分别对两部分进行快速排序。 5. 归并排序:同样采用分治法,将数组拆分成小段,分别排序后合并。 6. 堆排序:构建一个大顶堆(或小顶堆),然后将堆...

    java工作日计算(去除法定假日)

    在Java编程中,计算工作日是一项常见的需求,特别是在金融、物流和项目管理等领域。这个话题主要涉及如何在Java中处理日期和时间,并考虑到法定节假日的影响。以下是对这一主题的详细阐述: 1. **日期和时间处理库*...

Global site tag (gtag.js) - Google Analytics