Java数组中插入元素

**问题:Java中如何向一个已经升序排序好的数组中插入元素,得到的数组依然是升序数组
效果:
int[] array = {1,3,7,12,24,36,48};
插入数字9后新数组为
int[] newArray = {1,3,7,9,12,24,36,48};
**

import java.util.*;
public class ArrayInsertDemo{
    public static void main(String[] args){
        //定义一个整形数组
        int[] arr = {1,3,7,12,24,36,48};
        //定义一个新数组用来存储插入后得到的新数组的元素,使其长度加1
        int newArr = new int[arr.length+1];
        //将arr中的元素全部赋给newArr
        for(int index = 0;index < arr.length;index ++){
            newArr[index] = arr[index];
        }
        //键盘录入要插入的数字
        Scanner sc = new Scanner(System.in);
        //接收键盘录入的数字
        int num = sc.nextInt();

        //得到插入的数字应该在新数组中的索引位置
        //定义插入元素的索引位置
        int insertIndex = 0;
        for(int index = 0;index < newArray.length;index++){
            //如果插入的数字大于newArr[index],则insertIdex = index;
            if(num > newArr[index]){
                insertIndex = index;
            }
        }
        //将newArr中的元素从要插入的索引位置开始向后移动一位
        **判断条件index>insertIndex或者index>=insertIndex都可以**
        for(int index = newArr.length-1;index > insertIndex; index--){
            newArr[index] = newArr[index-1];
        }
        //将要插入的数存到集合中
        newArr[insertIndex] = num;

        //打印数组
        System.out.println(Arrays.toString(newArr));
    }
}

猜你喜欢

转载自blog.csdn.net/Barca_fan123/article/details/82145892