java数组的增删改查CURD操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MacWx/article/details/89016746

今天被一个同学问到这个对数组的增删改查问题,顺便就整理一下吧:

我是定义了四个函数,用到那个分别调动哪个就可以:
下面代码已经加了详细注释:

import java.util.Scanner;
class curd{
	//实现数组的增删改查
	public static void main(String[] args) {
		int[] a = {1,3,5,9,7,11,52,6,13,19};
		System.out.print("原数组为:");
		for (int i=0;i<a.length; i++) {
			System.out.print(a[i]+"\t");
		}
		System.out.println();

		//调用修改函数
		//mod(a);

		//调用查找元素
		//find(a);

		//调用插入函数
		ins(a);
		
		//调用删除函数	
		//del(a);

	}
	//修改数组中一个元素的值:
	public static void mod(int[] a){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个要修改的数的位数:");
		int n = sc.nextInt();
		System.out.println("请输入要修改为:");
		int s = sc.nextInt();
		//先找出位置,再修改
		for (int i=0;i<a.length ;i++ ) {
			if (n-1==i) {
				a[i]=s;
			}
		}
		System.out.print("修改后数组为:");
		for (int i=0;i<a.length; i++) {
			System.out.print(a[i]+"\t");
		}
	}
	//查找数组中元素的下标
	public static void find(int[] a){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个要查找的数:");
		int n=sc.nextInt();
		int s=0;
		for (int i=0;i<a.length;i++ ) {
			if (a[i]==n) {
				System.out.println("该数下标为:"+i);
				//return;
				s++;
			}
			
		}
		if(s==0){
			System.out.println("您查找的元素不存在!");
		}
	}

	//在数组中增加一个元素
	public static void ins(int[] a){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个要插入的数的地址:");
		int n = sc.nextInt();
		System.out.println("请输入一个要插入的数:");
		int s = sc.nextInt();
		int b[] = new int[a.length+1];
		//先扩容
		for (int i=0;i<a.length ;i++ ) {
			b[i]=a[i];
		}
		//插入位置之后的元素后移1位;
		for (int j=b.length-1;j>n ;j-- ) {
					b[j]=b[j-1];
		}

		//将要插入的位置之后的元素后移一位;
		for (int i=0;i<b.length ;i++ ) {
			
			//如果找到插入地址,原元素后移1位,插入元素放到插入地址上;
			if (n==i) {
				b[i+1]=b[i];
				b[i]=s;
			}
			
		}

		System.out.print("新增后数组为:");
		for (int i=0;i<b.length; i++) {
			System.out.print(b[i]+"\t");
		}

	}

	//删除函数
	//先查找要删除的数在不在数组中,如果在,将要删除的数改为0
	//然后再把后面的元素前移一位;
	public static void del(int[] a){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个要删除的数:");
		int n = sc.nextInt();
		//定义一个布尔常量
		boolean s = false;

		//循环查找要删除的数
		for (int i=0;i<a.length ;i++ ) {
			//查找要删除的元素
			if (a[i]==n) {
				//如果找到此元素,把s改为true;
				s=true;
				//将要删除的值设为0
				a[i]=0;
				//从右向左移位
				for (int j=i;j<a.length-1 ;j++ ) {
					a[j]=a[j+1];
				}
				//最后一位设为0
				a[a.length-1]=0;
			}
		}
		System.out.println("删除成功!删除后的数组元素为:");

		if (s==false) {
			System.out.println("数据找不到删除失败!");
		}
		//再次循环查看数组是否删除成功
		for (int i=0;i<a.length ;i++ ) {
			System.out.print(a[i]+"\t");
		}
	}
}

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/89016746