`

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-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结.md

    Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结 Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结 Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结

    java基础冒泡排序.ppt

    Java基础知识: 冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一... 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 简单,清晰,明了。

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

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

    java 冒泡排序法 PPT文档

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

    Java对可重复的数组排序后得到索引

    我查阅网上资料未见到关于数组中有重复元素时如何得到排序后的数组索引(所有元素的索引),所有自己写了一个简单的版本,与大家一起分享.

    C语言实现的冒泡排序算法(另附Java实现代码)

    冒泡排序是一种简单的排序算法,通过重复地遍历待排序的序列,比较相邻元素的大小,并进行交换,以达到排序的目的。文章中不仅提供了C语言的实现代码,还额外附带了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 冒泡算法和插入法排序,二分法查找

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

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

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

    java对音频文件的频谱分析

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

    java数据结构笔试题

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

    JAVA近百种算法大全

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

    java图像识别(判断两个图是否相似)

    在Java中进行图像识别,尤其是判断两张图片是否相似,是一个涉及计算机视觉和图像处理的复杂任务。本话题将深入探讨如何使用Java实现这一功能。在实际应用中,图像相似度判断广泛应用于图像检索、内容识别、人脸识别...

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

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

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

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

Global site tag (gtag.js) - Google Analytics