使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。

news/2024/11/16 14:56:58/

使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。(考察高效率,解决产生冲突的问题)

代码虽然实现了。
提高效率的地方有如下:
1.初始化set集合的时候 Sets.newHashSetWithExpectedSize(value),
给初始化带个固定大小,减少了集合在扩容的时候,值重新复制的问题。这的效率稍有提高。
2.Random random = new Random();放在循环之外。


具体代码如下:

    /*** 使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。* (考察高效率,解决产生冲突的问题)*/private static void testRandom() {int value = 10000000;//int类型最大值:2的32次方 - 1 = Integer.MAX_VALUE = 2147483647,二十亿多,真够啦 。Set<Integer> result = Sets.newHashSetWithExpectedSize(value);Random random = new Random();long a = System.currentTimeMillis();while (result.size() < value + 1) {int i = random.nextInt(value + 1);result.add(i);}System.out.println("\r<br> 执行耗时 : " + (System.currentTimeMillis() - a) / 1000f + " 秒 ");System.out.println("完了,集合大小为" + result.size());}

具体代码执行结果,如下图:



因为一千万个都打印 出来,不合适;就打印个集合大小就可以了吧。再打印个执行时间。

但是效率好像并没有提升太多。
但是怎么在,产生随机数的时候,修改,使得效率,再次提高。即产生过的数就不再被随机到。
这个我就不知道啦,估计得研究下Random这个类的所有方法才可以吧。
待以后更新。


(当然集合里面多随机生产了个0,再添加一行代码:result.remove(0);就可以把多余的0给去掉,然后就是正确的结果了。)




http://www.ppmy.cn/news/735686.html

相关文章

1000W纯正弦波逆变器方案资料EG8010源代码KA3525原理图图纸PCB

1000W纯正弦波逆变器方案资料EG8010源代码KA3525原理图图纸PCB id657880186786&

MySQL快速生成 1000W 条测试数据

好记忆不如烂笔头&#xff0c;能记下点东西&#xff0c;就记下点&#xff0c;有时间拿出来看看&#xff0c;也会发觉不一样的感受. 目录 1、生成思路 2、创建普通表及内存表 3、创建函数 4.创建存储过程 5、调用存储过程 6、插入普通表中 1、生成思路 利用mysql内存表插…

mysql中导入1000W条数据,哪种方式比较快

前言 背景 今天被妹子问到一个问题&#xff0c;往mysql中导入1000W条数据&#xff0c;哪种方式比较快&#xff0c;我居然被问到了&#xff0c;说实话我还真心不知道。 那就找数据呗&#xff0c;搞数据研发的好处就是&#xff0c;数据肯定是很多的&#xff0c;正好还有测试集群…

MySQL批量插入1000w条数据

一、概述 在一些实际的测试、运维过程中&#xff0c;往往需要向数据库插入大量数据&#xff0c;利用存储过程是一个不错的选择 本次采用MySQL5.7&#xff0c;模拟实际批量插入1000w条随机数据 二、创建库 mysql -uroot -p密码create database bigdata;use bigdata三、创建表 …

MySQL线上环境单表1000w数据增加字段怎么玩

http://www.gameboys.cn/article/163 向一个 1000w 数据的线上业务表里新加字段&#xff0c;怎么操作&#xff1f; 本地测试及正确解决方案&#xff1a; 1.准备测试环境 MySQL 测试环境 系统&#xff1a;Linux centos 6.8 内存&#xff1a;2G 内存 CPU:2 核 CPU 硬盘&…

如何从数据库加载1000w数据

这篇文章主要讲解 如何从数据库加载1000w数据 加载大量数据 例子&#xff1a;将1000w的数据从数据库导入到redis中 在mysql中的实现方法&#xff1a;1、limit 分页 2、游标 limit 分页 问题&#xff1a; 当offset很大时&#xff0c;mysql需要做大量的文件排序操作&#x…

Mysql 数据库 第十六节 存储过程 1000w 数据的插入

存储过程 1. 一组 可编程的函数&#xff0c; 是为了完成特定功能的 SQL语句集 储存过程就是具有名字的 一段代码&#xff0c;用来完成特定功能 2. 为什么要是用 存储过程 将 重复性很高的一些操作&#xff0c;封装到一个存储过程中&#xff0c; 简化了 对这些 SQL 的调用 批量…

Redis 中 hash 存储和获取

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 前言 最近做了个需求&#xff0c;需要用到 Redis 中 hash 存储和获取&#xff0c;记录一下使用方法。 import com.a…