`

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实现得到任意位永不重复的随机数,很经典的代码!

    java对比工具

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

    中值滤波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评分管理系统

    Java的Collections框架提供了sort()方法,可以对List接口的实现类进行排序。根据需求,可以选择升序或降序排列,也可以自定义比较器进行复杂排序。排序后的数据会更新到视图上,通过JTable或者JList组件呈现给用户,...

    JAVA近百种算法大全

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

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

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

    java数据结构(Java版)(第3版)[叶核亚] 全套资料

    排序算法如冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序等,是数据结构中重要的一部分。查找算法如顺序查找、二分查找和哈希查找则影响了数据的检索效率。 九、哈希表和集合 哈希表,如Java中的...

    java个人管理系统

    这涉及日期和时间处理,Java 8引入的LocalDate、LocalTime和LocalDateTime类能方便地进行日期时间操作。 4. 任务管理:任务管理模块允许用户分配、跟踪和标记完成的任务。可能需要用到优先级排序、任务状态管理等...

    java一亿数字取前100个(3秒钟获取)

    在这种情况下,可以使用流对数字集合进行排序,并获取前100个最小值。但是,考虑到性能要求,流API可能不是最佳选择,因为它涉及全量排序,时间复杂度为O(n log n)。 3. **快速选择算法(QuickSelect)**:这是一种...

    java语音朗读实例。TTS调用实例

    此外,`MyReader`可能还包含了对用户输入的处理,例如从命令行读取文本或者从文件读取,以及可能的错误处理和日志记录。 为了进一步扩展TTS功能,还可以考虑以下方面: - **多语言支持**:根据需要,可以切换不同...

    很强大的java代码混淆工具 Jocky

    大家熟知的Progaurd只能对class文件进行混淆,也就是必须先把java源码编译为class文件,然后再进行混淆 Jockey跟其他混淆工具不同的是:它是直接对编译过程做文章,也就是在把java文件编译为class文件的过程中对代码...

    java数百种算法实现

    - 快速排序:基于分治策略,选择一个基准值,将数组分为两部分,分别对两部分进行排序。 - 归并排序:同样采用分治策略,将数组分为两半,分别排序后合并。 - 堆排序:利用堆这种数据结构进行排序,分为大顶堆和...

Global site tag (gtag.js) - Google Analytics