黑马程序员技术交流社区

标题: 在数组指定位置插入一个数据 [打印本页]

作者: 黑马.chl    时间: 2019-6-26 21:18
标题: 在数组指定位置插入一个数据
/*
* 需求:
* 给定一个数组,在指定索引位置插入指定的值
*
* 分析:如果给的索引不在新数组中,结束程序
* 定义一个新数组
* 如果索引在新数组中,索引前的元素正常赋值,索引后的元素索引+1
* 定义一个方法 参数是索引  和 一个数组  返回值类型void
* 使用for循环赋值
*
* */
public class Test11 {
    public static void main(String[] args) {
        int[] arr = {1,3,5,7,9,11};
        boolean b=fn(5,100,arr);
        if(b==true){
            System.out.println(b);
        } else{
            System.out.println("插入数据失败,请检查索引是否正确");
        }

    }
    //定义一个方法 参数是索引  和 一个数组  一个数 返回值类型boolean
    public static boolean fn(int index,int num,int[] arr){
        //定义一个新数组
        int[] brr = new int[arr.length+1];
        //如果给的索引不在新数组中,结束程序
        if(index<0||index>=brr.length){
            return false;
        }
        //使用for循环赋值
        for (int i = 0; i < arr.length; i++) {
            if(index<=arr.length-1){
                //如果索引小于老数组长度,索引前的元素正常赋值
                if(i<index){
                    brr[i]=arr[i];
                }else{
                    //索引后的元素索引+1赋值
                    brr[i+1]=arr[i];
                }
                //给index位置赋值
                brr[index]=num;
            }else{
                //如果索引大于老数组长度,正常赋值
                brr[i]=arr[i];
                brr[index]=num;
            }
        }
        printArray(brr);
        return true;
    }
    //打印数组
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                System.out.println(arr[i]+" ]");
            }else{
                System.out.print(arr[i]+", ");
            }
        }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2