创建随机数案例:
package com.javase.random; import java.util.Random; /* 随机数 */ public class RandomTest01 { public static void main(String[] args) { // 创建随机数对象。 Random random = new Random(); // 随机产生一个int类型取值范围内的数字。 int num1 = random.nextInt(); System.out.println(num1); // 产生0到100之间的随机数,不能产生101 // nextInt翻译为:下一个int类型的数据是101,表示只能取到100 int num2 = random.nextInt(101);// 不包括101 System.out.println(num2); } }
生成五位不重复随机数:
package com.javase.random; import java.util.Arrays; import java.util.Random; /* 编写程序,生成5个不重复的随机数。重复的话重新生成 最终生成的5个随机数放到数组中,要求数组中这5个随机数不重复。 */ public class RandomTest02 { public static void main(String[] args) { // 创建Random对象 Random random = new Random(); int count = 0; // 准备一个长度为5的一维数组 int[] arr = new int[5];// 默认值都是0 for (int i = 0; i < arr.length; i++) { arr[i] = -1; } // 声明一个下标变量 int index = 0; while (index < arr.length){ // 生成随机数 int number = random.nextInt(5); // 判断arr数组中有没有这个num // 如果没有这个num,就放进去 if(!contains(arr,number)){ arr[index++] = number; } count++; } Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.print("最终的数组为 " + arr[i]); System.out.println(); } System.out.println("一共循环了 = " + count + "次"); } /* 单独写一个方法,判断这个数组中是否包含这个元素 */ public static boolean contains(int[] arr,int key){ /*// 这样写有BUG // 对数组进行升序 Arrays.sort(arr); // 进行二分法查找 // 二分法查找的结果 >= 0 说明,这个元素找到了,找到了表示存在。 return Arrays.binarySearch(arr,key) >= 0;*/ for (int i = 0; i < arr.length; i++) { if(arr[i] == key){ // 条件成立了,表示true。不包含返回false return true; } } return false; } }
原文:https://www.cnblogs.com/xlwu/p/13257895.html