介紹JAVA隨機(jī)數(shù)的幾種方法
作者:佚名
本文介紹的是java獲取隨機(jī)數(shù)的幾種方法,希望對你有幫助,一起來看。
JAVA隨機(jī)數(shù)的幾種方法:
方法1:
- //利用固定數(shù)組長度n,通過n的變化來實現(xiàn)。
- //關(guā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:
- //利用循環(huán)實現(xiàn)
- 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:
- //一個固定的無重復(fù)的數(shù)組,然后把這個數(shù)組隨機(jī)調(diào)換位置
- //多次之后這個數(shù)組就是一個無重復(fù)的隨機(jī)數(shù)組了
- 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);//隨機(jī)產(chǎn)生一個位置
- temp2=(int)(Math.random()*n);//隨機(jī)產(chǎ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來實現(xiàn)
- 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來實現(xiàn)
- 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的這幾種方法,能對你有幫助。
【編輯推薦】
責(zé)任編輯:于鐵
來源:
互聯(lián)網(wǎng)