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的这几种方法,能对你有帮助。
【编辑推荐】