【知识积累3】Java数组的插入操作

文章讲述了如何在Java中实现数组的自定义插入操作,通过创建新数组并移动元素来保持数组结构,提供了示例代码和方法参数解释。
摘要由CSDN通过智能技术生成

Java数组的插入操作

一、自定义插入方法

1.编程思路

  • 设置insert()方法,传入三个参数:要插入元素的数组、要插入元素的位置、要插入的元素(本题元素均设为整数);
  • 因为数组是固定长度的存储空间且不能扩展空间,所以重新开辟一个空间大小 + 1 的数组空间,作为插入元素后的新数组;
  • 根据要插入元素的位置参数,将参数前的元素保持不动,插入位及其后的元素均要向后移一位;
  • 将要插入的数放进参数所给定的新数组下标位置,新数组生成,将新数组作为返回值返回,insert()功能实现。

2.实操代码

import java.util.Arrays;

/**
 * ClassName: TestArrayInsert1
 * Description:
 *  数组插入元素 数组删除元素
 *  扩展:可以使用System.arraycopy方法 实现插入效果
 * @Author Ethan-TYQ
 * @Create 2023/8/4 18:29
 * @Version 1.0
 */
public class TestArrayInsert1 {

    public static void main(String[] args) {
        int [] arr = {342,23,4,43,3};
//        int num = 0;
//        int position = 0;
//        Scanner input = new Scanner(System.in);
//        System.out.println("请输入要交换的位数:");
//        position = input.nextInt();
//        System.out.println("请输入要交换的数字");
//        num = input.nextInt();

        int [] newArr;
//        newArr = new int[arr.length + 1];
//        newArr = insert(arr, position, num);
        newArr = insert(arr, 3, 34);//实际操作时直接手动在代码中设置第二、三个参数,第二个参数直接作为下标来调整
        System.out.println(Arrays.toString(newArr));

    }

    /**
     * 自定义数组插入方法
     * @param oldArr 操作的数据
     * @param index 插入元素的位置(简称“插入下标”)
     * @param num 插入的元素
     * @return 新的数组
     */
    public static int[] insert(int [] oldArr,int index,int num) {

        //下标不能小于0或者大于数组的长度
        if (index < 0 || index > oldArr.length) { //如果脚标小于0或大于原有数组的长度,则输入位置输入有误的提示
            System.out.println("下标输入不合法");
            // 如果下标不合法 则将传入的数组 直接返回 表示没有做任何操作
            return oldArr;
        }

        // 代码执行到这里 表示下标没问题
        // 准备一个长度+1的数组 用于插入元素
        int[] newArr = new int[oldArr.length + 1];

        // 遍历开始移动元素
        for (int i = 0; i < oldArr.length; i++) {
            //情况1 小于插入下标 则直接复制到新数组中
            if (i < index) {
//                int temp = newArr[i];
                newArr[i] = oldArr[i];
            } else { // 情况2  大于或者等于插入下标 则移动到新数组的+1位置
                newArr[i + 1] = oldArr[i];
            }
        }

        //空缺位置插入指定的的元素
        newArr[index] = num;
        return newArr; //将新数组返回
    }
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值