java数组的增删改查CURD操作

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

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

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");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清如许.

整理不易,点滴助力就是不竭动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值