package array;
import java.util.Scanner;
//一维数组基本功能与代码大全
public class ArrayManager {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
// 让用户自定义初始化数组
int[] arr = initializeArray(myScanner);
while (true) {
// 显示菜单
System.out.println("===== 数组管理系统 =====");
System.out.print("1. 添加元素");
System.out.print(" 2. 删除元素");
System.out.println(" 3. 查找元素");
System.out.print("4. 修改元素");
System.out.print(" 5. 显示数组");
System.out.println(" 6. 数组翻转");
System.out.print("7. 数组扩容");
System.out.println("8. 退出");
System.out.print("请选择操作(1-8):");
int choice = myScanner.nextInt();
switch (choice) {
case 1:
// 添加元素
arr = addElement(arr, myScanner);
break;
case 2:
// 删除元素
arr = removeElement(arr, myScanner);
break;
case 3:
// 查找元素
findElement(arr, myScanner);
break;
case 4:
// 修改元素
modifyElement(arr, myScanner);
break;
case 5:
// 显示数组
displayArray(arr);
break;
case 6:
// 数组翻转
reverseArray(arr);
break;
case 7:
// 数组扩容
arr = expandArray(arr, myScanner);
break;
case 8:
// 退出
myScanner.close();
System.out.println("退出系统。");
return;
default:
System.out.println("无效选择,请重新输入!");
}
}
}
// 用户自定义初始化数组的方法
public static int[] initializeArray(Scanner scanner) {
System.out.print("请输入数组的长度:");
int length = scanner.nextInt();
if (length <= 0) {
System.out.println("无效的数组长度!");
return new int[0]; // 返回一个空数组
}
int[] arr = new int[length];
for (int i = 0; i < length; i++) {
System.out.print("请输入第 " + (i + 1) + " 个元素:");
arr[i] = scanner.nextInt();
}
System.out.println("数组初始化成功!");
return arr;
}
// 添加元素的方法
public static int[] addElement(int[] arr, Scanner scanner) {
System.out.println("请输入你要添加的元素:");
int add = scanner.nextInt();
// 创建一个新的数组,比原来数组长度多一
int arrNew[] = new int[arr.length + 1];
// 将原数组的元素复制到新数组
for (int i = 0; i < arr.length; i++) {
arrNew[i] = arr[i];
}
// 在新数组的最后一个位置添加新元素
arrNew[arr.length] = add;
System.out.println("元素添加成功!");
return arrNew;
}
// 删除元素的方法
public static int[] removeElement(int[] arr, Scanner scanner) {
System.out.println("请输入你要删除的元素的下标:");
int index = scanner.nextInt();
if (index < 0 || index >= arr.length) {
System.out.println("无效的下标!");
return arr;
}
// 创建一个新的数组,比原来数组长度少一
int arrNew[] = new int[arr.length - 1];
// 将原数组的元素复制到新数组,跳过要删除的元素
for (int i = 0, j = 0; i < arr.length; i++) {
if (i != index) {
arrNew[j++] = arr[i];
}
}
System.out.println("元素删除成功!");
return arrNew;
}
// 查找元素的方法
public static void findElement(int[] arr, Scanner scanner) {
System.out.println("请输入你要查找的元素:");
int element = scanner.nextInt();
for (int i = 0; i < arr.length; i++) {
if (arr[i] == element) {
System.out.println("元素 " + element + " 在数组中的下标为:" + i);
return;
}
}
System.out.println("元素未找到!");
}
// 修改元素的方法
public static void modifyElement(int[] arr, Scanner scanner) {
System.out.println("请输入你要修改的元素的下标:");
int index = scanner.nextInt();
if (index < 0 || index >= arr.length) {
System.out.println("无效的下标!");
return;
}
System.out.println("请输入新的元素值:");
int newValue = scanner.nextInt();
arr[index] = newValue;
System.out.println("元素修改成功!");
}
// 显示数组的方法
public static void displayArray(int[] arr) {
System.out.println("当前数组元素为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
}
// 数组翻转的方法
public static void reverseArray(int[] arr) {
int start = 0;
int end = arr.length - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
System.out.println("数组翻转完成!");
}
// 数组扩容的方法
public static int[] expandArray(int[] arr, Scanner scanner) {
System.out.println("请输入扩容后的数组长度:");
int newLength = scanner.nextInt();
if (newLength <= arr.length) {
System.out.println("新数组长度必须大于当前数组长度!");
return arr;
}
int[] arrNew = new int[newLength];
for (int i = 0; i < arr.length; i++) {
arrNew[i] = arr[i];
}
System.out.println("数组扩容成功!");
return arrNew;
}
}
新增功能说明00:
- 添加元素:调用
addElement
方法,用户输入新元素,新数组比原数组长度多一,并将新元素添加到最后。 - 删除元素:调用
removeElement
方法,用户输入要删除元素的下标,新数组比原数组长度少一,并跳过要删除的元素。 - 查找元素:调用
findElement
方法,用户输入要查找的元素,程序遍历数组并输出该元素的下标。 - 修改元素:调用
modifyElement
方法,用户输入要修改元素的下标和新值,程序修改指定位置的元素。 - 显示数组:调用
displayArray
方法,输出当前数组的所有元素。 - 退出系统:选择退出选项,结束程序运行。
通过这些扩展功能,程序变得更加实用和多样化,可以满足用户对数组操作的各种需求。
新增功能说明01:
- 初始化数组:
initializeArray
方法让用户输入数组的长度和每个元素的值,从而创建和初始化数组。 - 完整的功能菜单:包括添加、删除、查找、修改和显示数组,以及退出系统。
这样,用户在运行程序时可以自定义数组的初始内容,使程序更加灵活和实用。
新增功能说明02:
- 数组翻转:
reverseArray
方法通过交换数组前后对应的元素来实现数组的翻转。 - 数组扩容:
expandArray
方法让用户输入新的数组长度,并创建一个新数组,将原数组的元素复制到新数组中。
这两个新功能使得数组管理系统更加全面和实用。用户可以翻转数组中的元素顺序,也可以根据需要增加数组的容量。
注:AI书写,以供学习