《关于java中数组增删改查实例这档事》

在指定位置插入指定元素
情景分析:

  • 插入下标位置需符合数组下标(数组容量-1)。
  • 插入指定元素不能覆盖原数组其它数据,即插入位置后的数据需要向后移动。

代码实例:

public class Add {
    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0};
        int index = 0;//在下标位置添加
        int insert = 50;//添加数数值

        if (index < 0 || index > arr.length - 1) {
            System.out.println("指定下标不合法");
            return;
        }
        //使用for循环对数组中其他数据进行移动操作
        //具体操作为将添加位置的数据整体后移
        // for 循环中 使用i为局部变量
        //代码为 arr[i] = arr[i - 1]; 前值给后值
        // i = arr.length - 1; 数组中下标从0开始
        for (int i = arr.length - 1; i > index; i--) {
            arr[i] = arr[i - 1];
        }
        //将数值引入腾出的位置
        arr[index] = insert;
        System.out.println(Arrays.toString(arr));



    }
}

执行结果:

[50, 1, 3, 5, 7, 9, 11, 13, 15, 17]

删除数组中指定下标元素
情景分析:

  • 删除下标位置需符合数组下标(数组容量-1)。
  • 删除指定元素后,原数据为无效元素0,删除位置后的数据需要向前移动。

代码实例:

public class Delete {
    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};

        int index = 0;
        if (index > arr.length - 1 || index < 0 ) {
            System.out.println("指定位置不合法");
            return;
        }

        //将删除位置之后的数据整体向前移动
        for (int i = index; i < arr.length - 1; i++) {
            arr[i] = arr[i + 1];//后值给前值
        }
        //将最后一个数据赋值为0
        arr[arr.length - 1] = 0;

        System.out.println(Arrays.toString(arr));


    }
}

执行结果:

[3, 5, 7, 9, 11, 13, 15, 17, 19, 0]

找出指定元素在指定数组中所有下标位置
情景分析:

  • 查询数组中某个数据很简单,使用if判断就可以了,但是该如何储存结果并能实现自动处理。

代码实例:

public class Inquire {
    public static void main(String[] args) {
        // 目标数组
        int[] arr = {1, 2, 3, 1, 2, 3, 1, 2, 3, 1};

        // 目标查询数据
        int find = 1;
        // 存储下标的数组 下标为int类型,容量和原数组容量一致(查询数据与数组数据相同最大个数为原数组容量)。
        // 使用该数组用来保存与查询数据相同的数组数据下标位置
        int[] indexArr = new int[arr.length];//此时该数组全为0

		/*
		1. 准备一个变量,来记录下一次存储数据的位置
		   同时count也是记录当前找到的目标数据次数
		   【有效元素个数】
		*/
        int count = 0;

        // 2. for 循环遍历数组,找出和目标数据 find 一致的内容,
        // 保存下标位置到indexArr中
        for (int i = 0; i < arr.length; i++) {
            // 需要保存 i 对应数据
            if (find == arr[i]) {
                indexArr[count] = i;
                count += 1;//每次存入下标后,count自增数据可存入下一个位置
                System.out.println(Arrays.toString(indexArr));//展示每次相同时,输入的下标位置
            }
        }

        // 3. 展示结果
        for (int i = 0; i < count; i++) {
            System.out.println(indexArr[i]);//展示数组中有效数据
        }

        System.out.println(Arrays.toString(indexArr));//展示数组
    }
}

执行结果:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 3, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 3, 6, 0, 0, 0, 0, 0, 0, 0]
[0, 3, 6, 9, 0, 0, 0, 0, 0, 0]
0
3
6
9
[0, 3, 6, 9, 0, 0, 0, 0, 0, 0]

Process finished with exit code 0

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java web增删查操作通常是通过使用Mapper接口和SQL映射文件来实现的。在增删,可以使用不同的方法来完成不同的操作。 对于删除操作,可以通过Mapper接口的方法来实现。单个删除可以通过传入id参数来删除对应的数据,方法签名为void deleteById(int id)。在SQL映射文件,可以使用delete语句来执行删除操作,语句使用了参数占位符来引用传入的id值,如delete from adoption where an_id=#{id}。在测试执行时,可以通过调用Mapper接口的deleteById方法来实现单个删除。 批量删除可以通过传入id数组来删除多个数据,方法签名为void deleteByIds(int\[\] ids)。在SQL映射文件,可以使用delete语句来执行删除操作,语句使用了collection属性来引用传入的id数组如delete from adoption where an_id in (#{ids})。在测试执行时,可以通过调用Mapper接口的deleteByIds方法来实现批量删除。 对于增加和修操作,可以通过Mapper接口的方法来实现。具体的实现方式可以根据需求来确定,一般会使用insert或update语句来执行相应的操作。 在Java web,可以通过获取Mapper接口的实来调用相应的方法来实现增删查操作。如,通过获取PayMapper接口的实payMapper,可以调用其selectById方法来查询指定id的数据。 总结起来,Java web增删查操作可以通过Mapper接口和SQL映射文件来实现,具体的实现方式可以根据需求来确定。 #### 引用[.reference_title] - *1* *2* *3* [javaweb-mybaits学习笔记(二)---数据的增删](https://blog.csdn.net/m0_63045116/article/details/130084891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值