产生0-10000000随机数,考虑效率
来源:互联网 发布:评价成都软件技术学院 编辑:程序博客网 时间:2024/06/05 22:38
其实我的写法并不是生成随机数,而是生成若干个范围内的随机数,取巧用了多个线程减少重复概率
写了若干个set,最后合并其实并没有必要,只是练手callable用法
package com.mercurylake.test.stack;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Random;import java.util.Set;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import com.google.common.collect.Sets;public class TestRandom implements Callable<Set>{private int min;private int expectnum;private Set<Integer> set=Sets.newHashSetWithExpectedSize(expectnum);public static void main(String[] args) throws InterruptedException, ExecutionException {long begin=System.currentTimeMillis()/1000;Set smain=Sets.newHashSetWithExpectedSize(10000000); List<Future<Set>> results=new ArrayList<Future<Set>>(); ExecutorService exec=Executors.newCachedThreadPool(); for(int i=0;i<10;i++){results.add(exec.submit(new TestRandom(1000000*i,1000000)));}exec.shutdown(); while (true) { if (exec.isTerminated()) { System.out.println("结束了!"); break; } Thread.sleep(200); } for(int i=0;i<10;i++){smain.addAll(results.get(i).get());System.out.println(i+":"+smain.size());}long end=System.currentTimeMillis()/1000;System.out.println("end... 消耗时间:"+(end-begin));}public TestRandom(int min,int expectnum){this.min=min;this.expectnum=expectnum;}@Overridepublic Set call() throws Exception { Random random=new Random(); while(set.size()<expectnum){ int i = random.nextInt(expectnum); set.add(i+min);} System.out.println("over:"+set.size());return set;}}
0 0
- 产生0-10000000随机数,考虑效率
- 产生0-1随机数 VC++
- 产生0-100的随机数
- 产生随机数
- 产生随机数
- 随机数产生
- 产生随机数
- 产生随机数
- 产生随机数
- 产生随机数
- 随机数产生
- 产生随机数
- 产生随机数
- 随机数产生
- 产生随机数
- 产生随机数
- 产生随机数
- 产生随机数
- Restful风格API接口开发springMVC篇
- matlab批量处理mat
- arm相关知识
- DLL项目中共享MFC,导出CString等,出现无法解析符号
- ResNet
- 产生0-10000000随机数,考虑效率
- 仿支付宝、微信EditText金额输入验证
- 管道Pipe的初次使用
- 递归函数时间复杂度分析二
- Table Tennis Game 2
- Python中:self和__init__的含义 + 为何要有self和__init__
- some thought
- 二叉树
- 数据库索引系列三:EXPLAIN使用详解