您好,登錄后才能下訂單哦!
本篇內容介紹了“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隨機數的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。