具体代码如下:
- importJava.util.Random;
- publicclassUtil{
- /**随机对象*/
- privatestaticRandomrd=null;
- /**
- *返回一个无重复的随机数组
- *@paramsrc来源数组,所有的数据都来自该数组
- *@return处理好的数组
- */
- publicstaticint[]random(int[]src){
- //如果源数组为空,则返回
- if(src==null){
- returnnull;
- }
- rd=newRandom();
- //创建返回数组
- int[]tmp=newint[src.length];
- //可供选择的数据个数
- intnum=src.length;
- //抽取到的数组的下标
- intindex;
- //随机抽取,如果某个数字被抽取,则置该数字为0,并放到数组的末尾
- for(inti=0;i<src.length;i ){
- //随机生成下标
- index=Math.abs(rd.nextInt())%num;
- //取该值
- tmp[i]=src[index];
- //交换数据
- src[index]=src[num-1];
- //可选择数量减少1
- num--;
- }
- //返回
- returntmp;
- }
- publicstaticvoidmain(String[]args){
- int[]test={1,2,3,4,5,6,7,8,9};
- inta[]=random(test);
- for(inti=0;i<a.length;i ){
- System.out.println(a[i]);
- }
- }
- }
复制代码 |
|