博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 生成无重复 随机数
阅读量:5951 次
发布时间:2019-06-19

本文共 1175 字,大约阅读时间需要 3 分钟。

hot3.png

一、实现逻辑

      1.需要一个固定的数据集。

       2.从数据集中随机去除当前索引的数据,并移除生成。并重复生成多个。

二、编码

import java.util.ArrayList;import java.util.Calendar;import java.util.List;import java.util.Random;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * @author liushuaic * @date 2016-08-31 13:49 * @desc 随机生成类 * **/public class RandomUtils {		private static Logger logger=LoggerFactory.getLogger(RandomUtils.class);		/**	 * @author liushuaic	 * @date 2016-08-31  14:17	 * @desc 随机不重复的数据	 * */	public static int[] randomNumber(int maxNumber,int rtnCount) throws Exception{		logger.info("starTime:"+Calendar.getInstance().getTimeInMillis());		if(maxNumber == 0){			throw new Exception("maxNnumber 不能为 0");		}		if(rtnCount == 0){			throw new Exception("rtnCount 不能为 0");		}		//logger.info("maxNumber:"+maxNumber+"rtnCount:"+rtnCount);		if(rtnCount>maxNumber){			throw new ArrayIndexOutOfBoundsException("rtnCount 不能大于 maxNumber");		}		List
chacheArray=new ArrayList
(); int[] rtnNumber=new int[rtnCount]; for(int i=1;i<=maxNumber;i++){ chacheArray.add(Integer.valueOf(i)); } for(int j=0;j

三、测试结果 

      1.给出100W的长度,取出1W个

      

     2.时间长度1.226秒

转载于:https://my.oschina.net/lavedream/blog/740446

你可能感兴趣的文章