顺序表(泛型)是什么?

摘要:package Data_Structure; import java.util.Scanner; public class SeqList<T> { private int length; st
package Data_Structure; import java.util.Scanner; public class SeqList<T> { private int length; static private int MAXSIZE =100; private Object[] data; // 0<=i<=length,允许在末尾的下一个位置插入 @SuppressWarnings("unchecked") public void InsertList(int i,T data) throws IllegalStateException{ //保证其插入位置合法以及还有插入位置 if(length == MAXSIZE ){ throw new IllegalStateException("该表已满"); } if(i<0 || i>length){ throw new IllegalArgumentException("非法参数"); } //从最后一个元素开始,依次将元素后移 for(int k = length-1; k>=i;k--){ this.data[k+1] = this.data[k]; } //然后直接插入 this.data[i] = data; this.length++; System.out.println("索引"+i+"位置成功插入元素"+data); } //删除索引位置i的元素, 0<=i<length @SuppressWarnings("unchecked") public T DeleteList(int i) { if(length==0){ throw new IllegalStateException("非法操作"); } if(i<0||i>=length){ throw new IllegalStateException("非法参数"); } T element = (T)this.data[i]; //元素依次迁移,覆盖掉原本的位置。 for(int k=i;k<length-1;k++){ this.data[k]=this.data[k+1]; } this.length--; this.data[length] = null; return element; } public SeqList() { this.length=0; this.data = new Object[MAXSIZE]; } public int getLength() { return length; } public void setLength(int length){ this.length=length; } @SuppressWarnings("unchecked") public T getDataForIndex(int i) { return (T)this.data[i]; } public void showList(){ System.out.print("["); for(int i=0;i<length;i++){ System.out.print(this.<T>getDataForIndex(i)); if(i<length-1) System.out.print(","); } System.out.println("]"); } public static void main(String[] args){ SeqList<String> stringSeqList = new SeqList<>(); Scanner in = new Scanner(System.in); for (int i = 0; i < 10; i++) { System.out.println("请输入字符串:"); String str = in.next(); stringSeqList.<String>InsertList(i,str); } stringSeqList.<String>showList(); } }