利用随机函数创建一个不重复的数组
import java.util.Random; //导入的随机函数类
public class RandomTest {
public static void main(String[] args) {
Random random = new Random(); //随机函数Random
int[] arr = new int[10]; //生成10个不重复的随机数
int index = 0; //用来记录数组下标
while(index < arr.length) { //用作循环结束判断条件
int num = random.nextInt(11); //随机生成一个1~10之间的数,在此只能够给定一个大于等于数组长度的随机数,否则该数组永远填不满,程序便会进入死循环
if (!RandomTest.contains(arr, num)) { //调用静态方法验证数组中是否存在这个数
//如果数组中不存在该数,则将该数添加至数组 index++ 位置
arr[index++] = num;
}
}
for (int i = 0; i < arr.length; i++) { //冒泡排序
for (int j = arr.length - 1; j > i; j--) {
if (arr[j - 1] > arr[j]) {
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
for (int i : arr) { //foreach循环遍历数组打印输出
System.out.print(i + " ");
}
}
public static boolean contains(int[] arr, int key) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) { //如果该数在数组中已经存在则直接返回true
return true;
}
}
return false;
}
}
或是用下面这个
public class RandomArray {
private static final int size = 30; //随机数范围
private static final int arrayLength = size - 10; //数组长度
private static int realSize = 0; //数组有效数据长度
public static void main(String[] args) {
int[] arr = new int[arrayLength];
randomArray(arr);
print(arr);
}
private static void print(int[] arr) { //打印
for (int i = 0; i < realSize - 1; i++)
System.out.print(arr[i] + ", ");
}
private static void randomArray(int[] arr) {
while (realSize < arrayLength) { //循环条件为数组实际长度(即有用数据)小于数组长度
int randomNum = (int)(Math.random() * size + 1);
sort(arr); //插入之前排序作判断
if (!isExists(arr, randomNum)) //如果存在,则跳过本次,否则存入数组
arr[realSize++] = randomNum;
}
}
private static void sort(int[] arr) { //冒泡排序
for (int start = 0; start < realSize; start++) {
for (int end = start + 1; end < realSize; end++) {
if (arr[start] > arr[end]) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
}
}

浙公网安备 33010602011771号