Java初学者--数组的增删改查代码

数组的增删改查

import java.util.Scanner;
public class TestOperations{
	static int count = 3; //计数	static修饰后,可以作为全局该类的所有函数的访问
	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程序结束");
	}
	
	//往数组中插入元素,value:插入的值,position:插入的位置
	public static void insert(int[] nums , int value , int position){
		if(position < 0 || position > count){	//判断有效下标,插入范围0~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++;
	}
	
	//删除功能	position:目标位置
	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--;
	}
	
	//替换功能	value:值,position:目标位置
	public static void replace(int[] nums , int value , int position){
		if(check(position) == false){
			return;
		}
		nums[position] = value;
	}
	
	//查询功能	position:目标位置
	public static int search(int[] nums , int position){
		if(position < 0 || position >= count){	//判断有效下标,插入范围0~count
			System.out.println("输入的目标有误,请输入0~"+ (count-1) +"\n");
			return -2147483648;
		}
		return nums[position];
	}
	
	//将现有的的nums数组进行扩容
	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){	//判断有效下标,插入范围0~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);
	}
}

在这里插入图片描述在这里插入图片描述在这里插入图片描述

发布了34 篇原创文章 · 获赞 7 · 访问量 1310

猜你喜欢

转载自blog.csdn.net/weixin_44257082/article/details/104283979