插入数据那块是怎么执行的?没看明白啊  就是红色那块谁能详细给我讲解一下
public static void main(String[] args) {
int max=100;
OrdArray arr;
arr = new OrdArray(max);
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.display(); }}
class OrdArray{
private long []a;
private int n;
public OrdArray(int max){
a = new long[max];
n=0;
}
public void insert(long value){
int j;
for(j=0;j<n;j++)
if(a[j]>value)
break;
for(int k=n;k>j;k--)
a[k]=a[k-1];
a[j]=value;
n++;
}
public void display(){
for(int j=0;j<n;j++)
System.out.println(a[j]+" ");
} }

解决方案 »

  1.   

    程序没贴完吧?
    public class Test{
    public static void main(String[] args) { 
    int max=100; 
    OrdArray arr; 
    arr = new OrdArray(max); 
    arr.insert(77); 
    arr.insert(99); 
    arr.insert(44); 
    arr.insert(55); 
    arr.insert(22); 
    arr.display(); 

    }class OrdArray{ 
    private long []a; 
    private int n; 
    public OrdArray(int max){ 
    a = new long[max]; 
    n=0;  //这里定义的n为数组中元素的个数,初始化为0

    public void insert(long value){ 
    int j; 
    for(j=0;j <n;j++)  //从数组的第一个元素开始,依次与欲新插入的元素进行比较,直到数组的最后一个元素
    if(a[j]>value) //如果数组中某个元素大于欲新插入的元素,则停止比较,退出循环,此时的a[j]就是数组中第一个大于欲新插入的元素的元素,也就是说,要将value插入到a[j]里,并将从a[j]开始的元素,依次往后挪一位
    break; 
    for(int k=n;k>j;k--) //从数组的最后一个元素开始,依次往后挪一位,直到a[j] 
    a[k]=a[k-1]; 
    a[j]=value;  //将value放入a[j]
    n++;  //数组中的元素个数加1

    public void display(){ 
    for(int j=0;j <n;j++) 
    System.out.println(a[j]+" "); 


      

  2.   

    二楼gesanri 注释做的很清楚了
      

  3.   

    保证插入List中的数值从小到大排序