java不借助函数实现连续数组的生成,拷贝,打乱
package Example;
import java.util.Scanner;
import java.util.Random;
public class CopyArr {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组长度:");
int[] arr = new int[sc.nextInt()];
System.out.println("请输入数组开始值及结束值:");
int[] newarray = createArr(arr, sc.nextInt(), sc.nextInt());
printArr(newarray);
System.out.println("是否要进行数组不同长度拷贝和打乱?请输入需要的命令数字\n(0不拷贝/1拷贝/2打乱)");
int order = sc.nextInt();
if (order == 1) {
System.out.println("请输入需要拷贝的数组的开始值和结束值:");
int[] newArr = copyArray(newarray, sc.nextInt(), sc.nextInt());
printArr(newArr);
} else if (order == 2) {
int[] outarr = outOfArr(newarray);
printArr(outarr);
} else if (order == 0) {
System.out.println("结束!");
} else {
System.out.println("输入有误!");
}
}
public static int[] outOfArr(int[] arr) {
Random random = new Random();
System.out.println("原数组:");
printArr(arr);
for (int i = 0; i < arr.length; i++) {
int out_indxe = random.nextInt(arr.length);
int temp = arr[i];
arr[i] = arr[out_indxe];
arr[out_indxe] = temp;
}
System.out.println("打乱后的数组:");
return arr;
}
public static int[] copyArray(int[] arr, int starts, int ends) {
int[] newArr = new int[ends - starts];
int index = 0;
for (int i = starts; i < ends; i++) {
newArr[index] = arr[i];
index++;
}
System.out.println("自定义长度拷贝后的数组:");
return newArr;
}
public static int[] createArr(int[] arr, int start, int end) {
int index = 0;
for (int i = start; i < end; i++) {
arr[index] = i;
index++;
}
return arr;
}
public static void printArr(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[arr.length - 1] + "]");
} else {
System.out.print(arr[i] + ", ");
}
}
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/2adf4d7936d74b8b9c648368880772b6.png)