程序:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
我的写代码如下:
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原来的规律将它插入数组中!不用像上面的代码那样麻烦!!!
我的写代码如下:
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原来的规律将它插入数组中!不用像上面的代码那样麻烦!!!
非要数组的话数组本身是没有自己的方法可以实现的。但是可以自己写个方法封装下实现。
这个方法就是new一个新的数组,把排序好的值赋给这个数组,然后把这个新数组返回就可以了。这样虽然效率不好,但可以实现楼主的需求。
如果已存在值,返回位置,如果不存在,则返回-的插入位置新建一个长度+1的数组,分别把前半部分,后半部分及插入值放入新数组中即可
TreeSet是一个可以自动排序的列表,每插入一个元素后都会自动排序