用java语言写一个数组随机排序,要求:数组元素必须全部包括1、2、3、4、5、6,且数组长度为7,除第一项与最后一项以外数组元素不重复,且第一项元素可以自定义
时间: 2023-12-28 08:16:06 浏览: 71
JAVA语言实现随机数的输入以及数组的排序
5星 · 资源好评率100%
好的,以下是用 Java 语言实现的代码:
```java
import java.util.Random;
public class RandomArray {
public static void main(String[] args) {
int[] arr = new int[7];
int first = 2; // 自定义第一项的值为 2
arr[0] = first;
arr[6] = first;
int[] nums = {1, 3, 4, 5, 6};
for (int i = 1; i < 6; i++) {
int index = new Random().nextInt(nums.length);
arr[i] = nums[index];
nums = removeElement(nums, index);
}
shuffleArray(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
private static void shuffleArray(int[] arr) {
Random random = new Random();
for (int i = arr.length - 1; i > 0; i--) {
int index = random.nextInt(i + 1);
int temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
}
}
private static int[] removeElement(int[] arr, int index) {
int[] newArr = new int[arr.length - 1];
for (int i = 0, j = 0; i < arr.length; i++) {
if (i != index) {
newArr[j++] = arr[i];
}
}
return newArr;
}
}
```
这段代码中,我们首先定义了一个长度为 7 的数组,并且自定义第一项的值为 2。然后定义了一个包含 1~6 的数组 nums,并在一个循环中从 nums 中随机选择一个元素赋值给数组的第二项到第六项,每次赋值后从 nums 数组中移除已选的元素,保证不重复。接着,我们使用 Fisher-Yates 洗牌算法实现了数组的随机排序。最后将数组打印出来即可。
阅读全文