
运行效果如下

public class demo {
public static void main(String[] args){
int[] arr = {2,5,6,7,8,9,10};
Scanner sc = new Scanner(System.in);
System.out.print("插入之前的数组:");
for (int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println("");
System.out.println("请输入要插入的数:");
int num = sc.nextInt();
//定义一个比原数组长度大一的空数组
int[] arr2 = new int[arr.length+1];
//如果输入的比有序数组的最后一个元素还大,就直接放到新数组的最后一个
if(num>arr[arr.length-1]){
arr2[arr2.length-1]=num;
for(int i=0;i<arr.length;i++){
arr2[i] = arr[i];
}
}else{
int i;
for(i=0;i<arr.length;i++){
if(arr[i]<num){
arr2[i] = arr[i];
}else{
arr2[i] = num;
break;//例如1,2,3,5,6;插入4;1,2,3,4,插入之后要跳出,否则后面就全是4
}
}
for(int j=i+1;j<arr2.length;j++){
arr2[j]=arr[j-1];//把剩下的元素添加尽量,例如上面的5,6
}
}
traverse(arr2);
}
//定义遍历方法
public static void traverse(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");//不换行遍历,以空格隔开
}
System.out.println();//换行
}
}
package com;
import java.util.Scanner;
public class Text02 {
public static void main(String[] args) {
int[] arr = {0,1,2,3,5,6,7};
Scanner sc = new Scanner(System.in);
System.out.print("请输入数字:");
int num = sc.nextInt();
int[] arr1 = insert(arr, num);
System.out.print("原数组:");
out(arr);
System.out.print("新数组:");
out(arr1);
}
public static int[] insert(int[] arr, int num){
boolean bo = true;
int length = arr.length;
int[] arr1 = new int[length+1];
for(int i=0;i<length;i++){
if(bo){
if(arr[i]>=num){
bo = false;
arr1[i] = num;
arr1[i+1] = arr[i];
} else{
if(i == length-1){
arr1[i] = arr[i];
arr1[i+1] = num;
}else{
arr1[i] = arr[i];
}
}
}else{
arr1[i+1] = arr[i];
}
}
return arr1;
}
public static void out(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
System.out.println();
}
}