方法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的这几种方法,能对您有所帮助。
公司名称:合肥叶凡网络科技有限公司
网站建设网址:http://www.hfyefan.com/web.html
电话:0551-65867402
业务QQ:446881654
邮箱:web@hfyefan.com