求Java代码[插入数字]

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的 数,依次后移一个位置。


import java.util.Arrays;
public class HelloWorld {
    public static void main(String []args) {
        int[] arr = {12,25,31,36,54};
        int[]newArr=insert(arr,12);
        System.out.print(Arrays.toString(newArr));
    }
    public static int[] insert(int[] arr,int number){
        int[] newArr = new int[arr.length+1];
        if(arr[arr.length-1]<number){
            System.arraycopy(arr, 0, newArr, 0, newArr.length-1);
            newArr[arr.length]=number;
        }else{
            int index = index(arr,number);
            System.arraycopy(arr, 0, newArr, 0, index);
            newArr[index]=number;
            System.arraycopy(arr, index, newArr, index+1, newArr.length-index-1);
        
        }
        return newArr;
    }
    public static int index(int[] arr,int number){
        for(int j = 0;j<arr.length;j++){
                if(arr[j]<=number&&arr[j+1]>number){
                    return j+1;
                }else if(arr[j]<number&&arr[j+1]>=number){
                    return j+1;
                }else if(arr[j]==number){
                    return j+1;
                }
        }
        return 0;
    } 

}