管理类package Sequence;public abstract class Sorter<E extends Comparable<E>> {
public abstract void sort(E[] array, int from, int len); public final void sort(E[] array) {
sort(array, 0, array.length);
} protected final void swap(E[] array, int from, int to) {
E tmp = array[from];
array[from] = array[to];
array[to] = tmp;
}}排序类package Sequence;
/*
 * 一 插入排序
 * 该算法在数据规模小的时候十分高效,该算法每次插入第K+1到前K个有序数组中一个合适位置,K从0开始到N-1,从而完成排序:
 * */
public class InsertSequence <E extends Comparable<E>> extends Sorter<E>{ public  void sort(E[] array, int from, int len) {
         E tmp=null;
          for(int i=from+1;i<from+len;i++)
          {
              tmp=array[i];
              int j=i;
              for(;j>from;j--)
              {
                  if(tmp.compareTo(array[j-1])<0)
                  {
                      array[j]=array[j-1];
                  }
                  else break;
              }
              array[j]=tmp;
          }
    }
}
怎么执行InsertSequence类中的sort????????????

解决方案 »

  1.   

    请前辈们 回复的时候 原理性强一些,我不明白 这个 E[] array 这是形式参数是什么意思
      

  2.   

    什么是泛型数组,
    那么该怎么执行那段代码腻,
    能不能给个代码demo
      

  3.   

    泛型数组,就是有这么一个数组,至于这个数组里装的是int,是object还是别的什么类型你可以先不管。到具体传参时在看你传的是什么类型的数组,然后在做相应的处理。关于泛型网上例子很多的....
      

  4.   

      一、  public class Stud  extends Comparable<Stud>{
           }
      二、写个类继承Sorter<E extends Comparable<E>>   比如
           public class Sorter<Stud> extends Sorter<Stud>
      三、InsertSequence<Stud> seque = new InsertSequence<Stud>();
          seque.sort(Stud[],from,to)  //对Stud数字 从from到to 直接进行特殊排序。
      

  5.   

     E[] array 的意思其实蛮好理解的。
    你在用ArrayList<E>时通常不要尖括号如:ArrayList。
    那么我们在传参的时候可以传的类型很多。如:ArrayList<String>、ArrayList<HashMap>。