黑马程序员技术交流社区

标题: 一个生成无重复数字的代码 [打印本页]

作者: 张浮生    时间: 2015-5-13 22:49
标题: 一个生成无重复数字的代码
具体代码如下:
  1. importJava.util.Random;
  2. publicclassUtil{
  3. /**随机对象*/
  4. privatestaticRandomrd=null;

  5. /**
  6. *返回一个无重复的随机数组
  7. *@paramsrc来源数组,所有的数据都来自该数组
  8. *@return处理好的数组
  9. */
  10. publicstaticint[]random(int[]src){
  11. //如果源数组为空,则返回
  12. if(src==null){
  13. returnnull;
  14. }

  15. rd=newRandom();
  16. //创建返回数组
  17. int[]tmp=newint[src.length];
  18. //可供选择的数据个数
  19. intnum=src.length;

  20. //抽取到的数组的下标
  21. intindex;
  22. //随机抽取,如果某个数字被抽取,则置该数字为0,并放到数组的末尾
  23. for(inti=0;i<src.length;i ){
  24. //随机生成下标
  25. index=Math.abs(rd.nextInt())%num;
  26. //取该值
  27. tmp[i]=src[index];
  28. //交换数据
  29. src[index]=src[num-1];
  30. //可选择数量减少1
  31. num--;
  32. }
  33. //返回
  34. returntmp;
  35. }

  36. publicstaticvoidmain(String[]args){
  37. int[]test={1,2,3,4,5,6,7,8,9};
  38. inta[]=random(test);

  39. for(inti=0;i<a.length;i ){
  40. System.out.println(a[i]);
  41. }
  42. }

  43. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2