程序:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 
我的写代码如下:
import java.util.*;public class ArraysInsert {
static int i=0;
public static void main(String[] args) {
int[] a = {1,3,5,9,10};
int[] b = new int[a.length+1];

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if(num>a[a.length-1]) {
b[a.length] = num;
for(i=0;i<a.length;i++) {
b[i]=a[i];
}
}else {
for( i=0;i<a.length;i++) {
if(num>=a[i]) {
b[i] = a[i];
}else {
b[i] = num;
break;
}
}
for(int j=i+1;j<a.length+1;j++) {
b[j] = a[j-1];
}
}
for(i=0;i<b.length;i++) {
System.out.print(b[i]+" ");
}



}}
请问一下:API里有没有哪种方法直接调用 如insert(a) 直接实现将a原来的规律将它插入数组中!不用像上面的代码那样麻烦!!!

解决方案 »

  1.   

    要实现这种功能的话建议楼主用集合来实现,简单快捷。
    非要数组的话数组本身是没有自己的方法可以实现的。但是可以自己写个方法封装下实现。
    这个方法就是new一个新的数组,把排序好的值赋给这个数组,然后把这个新数组返回就可以了。这样虽然效率不好,但可以实现楼主的需求。
      

  2.   

    TreeSet 最好 、 数组走开
      

  3.   

    java.util.Arrays.binarySearch()可以直接对已排序的数据进行2分查找。
    如果已存在值,返回位置,如果不存在,则返回-的插入位置新建一个长度+1的数组,分别把前半部分,后半部分及插入值放入新数组中即可
      

  4.   

    这个问题,要么用数组自己实现,要么就用集合类,像TreeSet,这个你只管放就行了,它是有序的,所以插入就行了!
      

  5.   

    Set<Integer>list=new TreeSet<Integer>();
    TreeSet是一个可以自动排序的列表,每插入一个元素后都会自动排序