本篇内容介绍了“JAVA随机数的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
方法1:
//利用固定数组长度n,通过n的变化来实现。 //关键:nums[r]=nums[n-1]; // n--; public class Test1 { public static void main(String[] args){ int n=35; int[] nums=new int[n]; for(int i=0;i<nums.length;i++) nums[i]=i+1; int[] arr=new int[7]; for(int i=0;i<arr.length;i++){ int r=(int)(Math.random()*n); arr[i]=nums[r]; nums[r]=nums[n-1]; n--; } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } }
方法2:
//利用循环实现 public class Test2 { public static void main(String[] args){ int[] arr = new int[7]; for (int i = 0; i < 7; i++){ arr[i] = (int) (Math.random() * 35) + 1; for (int j=0; j<i;j++){ if (arr[j] == arr[i]){//如果arr[i]与arr[j]相同,则arr[i]重新取值,并检验 i--; break; } } } for(int i=0;i<7; i++) System.out.print(arr[i] + " "); } }
方法3:
//一个固定的无重复的数组,然后把这个数组随机调换位置 //多次之后这个数组就是一个无重复的随机数组了 public class Test3 { public static void main(String[] args){ int n=35; int[] nums=new int[n]; for(int i=0;i<nums.length;i++) nums[i]=i+1; int temp1,temp2,temp3; for(int i=0;i<nums.length;i++){ temp1=(int)(Math.random()*n);//随机产生一个位置 temp2=(int)(Math.random()*n);//随机产生另一个位置 if(temp1!=temp2){ temp3=nums[temp1]; nums[temp1]=nums[temp2]; nums[temp2]=temp3; } } int[] arr=new int[7]; for(int i=0;i<arr.length;i++){ arr[i]=nums[i]; System.out.print(arr[i]+" "); } } }
方法4:
//使用HashSet来实现 import java.util.*; public class Test4 { public static void main(String[] arg){ int n=35; Set<Integer> mySet=new HashSet<Integer>(); while(mySet.size()<7) mySet.add((int)(Math.random()*n)+1); for(Integer i:mySet) System.out.print(i+" "); } }
方法5:
import java.util.*; //使用linkedList来实现 public class Test5 { public static void main(String[] args){ LinkedList<Integer> mylist=new LinkedList<Integer>(); int n=35; for(int i=0;i<n;i++) mylist.add(i+1); int[] arr=new int[7]; for(int i=0;i<arr.length;i++){ arr[i]=mylist.remove((int)(Math.random()*n));//remove(index i)移除指定位置处得元素 n--; } for(int i=0;i<arr.length;i++){ System.out.print("arr["+i+"]:"+arr[i]+" "); } } }
“JAVA随机数的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!