其实我的写法并不是生成随机数,而是生成若干个范围内的随机数,取巧用了多个线程减少重复概率
写了若干个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=