`

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编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

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

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

    java 冒泡排序法 PPT文档

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

    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写入大数据文件

    通过对比开始和结束时间,程序可以计算出整个操作的耗时,以便对程序的性能进行优化。 Java写入大数据文件需要考虑多种因素,如文件大小、写入速度、内存占用等,以确保写入操作的高效性和可靠性。在实际应用中,...

    中值滤波Java实现

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

    模拟彩票机选 用java编写的小程序

    代码可能包含了创建`Random`对象,使用它来生成随机号码,然后对这些号码进行冒泡排序,最后根据彩票的规则组合这些号码。为了进一步理解`caipiao1.java`的内容,你需要打开文件查看具体的实现细节。 总结起来,...

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

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

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

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

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

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

    java对音频文件的频谱分析

    在Java编程环境中,进行音频文件的频谱分析是一项复杂但重要的任务,特别是在音频处理和音乐信息检索领域。本文将深入探讨如何使用给定的压缩包文件来实现这一目标。 首先,频谱分析是将时域信号转换为频域表示的...

    java数据结构笔试题

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

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

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

    Java抓包分析四(基于jnetpcap进行抓包)

    Java抓包分析是网络编程领域中的一个重要话题,它主要用于监测和分析网络通信数据,以便调试、安全检测或性能优化。本篇将详细讲解如何利用Java的jnetpcap库进行网络抓包操作。 jnetpcap是一个Java版的libpcap库...

    java个人管理系统

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

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

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

    从n个数组中取出所有排列组合(Java实现)

    在实际应用中,可能需要对结果进行优化,例如使用Set避免重复,或者使用Stream API来简化代码。此外,对于大数据量的输入,还需要考虑性能优化,如使用并行计算或记忆化搜索等技术。 总结来说,从n个数组中取出所有...

Global site tag (gtag.js) - Google Analytics