数组的增删改查
import java.util.Scanner;
public class TestOperations{
static int count = 3;
public static void main(String[] args){
int[] nums = new int[5];
Scanner input = new Scanner(System.in);
nums[0] = 11;
nums[1] = 0;
nums[2] = 33;
int num;
boolean flag = true;
int value;
int position;
do{
pringln("------------------------------------------------");
pringln("当前数组为:");
print(nums);
pringln("------------------------------------------------");
pringln("1.插入 2.替换 3.查询 4.删除 5.扩容 6.遍历 0.退出");
pringln("------------------------------------------------");
pring("请输入选择:");
num = input.nextInt();
switch(num){
case 1:
pring("请输入插入值:");
value = input.nextInt();
pring("请输入插入位置下标:");
position = input.nextInt();
insert(nums , value , position);
pringln(" ");
break;
case 2:
pring("请输入替换值:");
value = input.nextInt();
pring("请输入替换位置下标:");
position = input.nextInt();
replace(nums , value , position);
pringln(" ");
break;
case 3:
pring("请输入查询位置下标:");
position = input.nextInt();
if(search(nums , position) == -2147483648){
break;
}
System.out.println("您查询的下标位置,对应的值是:"+ search(nums , position));
pringln(" ");
break;
case 4:
pring("请输入删除位置下标:");
position = input.nextInt();
delete(nums , position);
pringln(" ");
break;
case 5:
nums = expand(nums);
pringln("---执行扩容功能---");
pringln(" ");
break;
case 6:
pringln(" ");
break;
case 0:
pring("---执行退出功能---");
flag = false;
break;
default:
pringln("不合法的输入,请重新输入:");
pringln(" ");
break;
}
}while(flag);
pringln("\n程序结束");
}
public static void insert(int[] nums , int value , int position){
if(position < 0 || position > count){
System.out.println("输入的目标有误,请输入0~"+ count +"\n");
return;
}
if(position == nums.length){
System.out.println("数组已达上限,请扩容数组");
return;
}
for(int i = count;i > position;i--){
nums[i] = nums[i - 1];
}
nums[position] = value;
count++;
}
public static void delete(int[] nums , int position){
if(check(position) == false){
return;
}
for(int i = position;i < count - 1;i++){
nums[i] = nums[i+1];
}
count--;
}
public static void replace(int[] nums , int value , int position){
if(check(position) == false){
return;
}
nums[position] = value;
}
public static int search(int[] nums , int position){
if(position < 0 || position >= count){
System.out.println("输入的目标有误,请输入0~"+ (count-1) +"\n");
return -2147483648;
}
return nums[position];
}
public static int[] expand(int[] nums){
int[] newNums = new int[nums.length * 2];
System.arraycopy(nums , 0 , newNums , 0 , nums.length);
return newNums;
}
public static void print(int[] nums){
for(int i = 0 ;i < count;i++){
System.out.print(nums[i] +"\t");
}
System.out.println();
}
public static boolean check(int position){
if(position < 0 || position >= count){
System.out.println("输入的目标有误,请输入0~"+ (count-1) +"\n");
return false;
}
return true;
}
public static void pring(String str){
System.out.print(str);
}
public static void pringln(String str){
System.out.println(str);
}
}