这是一个顺序表的类,初始化的时候就已经确定了表的长度,之后不能添加数据,因为使用的是数组存储的数据,不过这个表的类型是泛型的。
public class List { private Object[] data; private int length; /* *新建一个线性表 */ public List(Object...objects) { this.data = objects; for(Object object:objects) { this.length++; } } /* * 若线性表为空,返回true 否则返回false */ public boolean ListEmpty() { if(this.data == null) { return true; }else { return false; } } /* * 将当前线性表清空 */ public boolean ClearList() { this.data = null; this.length = 0; return true; } /* * 将返回线性表的第i个位置的元素值 */ public Object GetElem(int i) { return data[i]; } /* * 在表从找到与e值相等的元素,返回该元素表示成功,返回0表示失败 */ public Object LocateElem(Object e) { int i = 0; for(Object object:this.data) { if(object == e) { return i; } i++; } return 0; } /* * 在表中的第i个位置插入新元素e */ public Boolean ListInsert(int i, Object e) { if(this.length == i) { //如果超过表的长度 返回错误 return false; }else { for(int j = this.length - 1; j > i; j--) { data[j] = data[j-1] ; } data[i] = e; return true; } } /* * 返回表的长度 */ public int length() { return this.length; } /* * 删除表的第i个位置 */ public Boolean ListDelete (int i) { if(this.length == i) { //如果超过表的长度 返回错误 return false; }else { for(int j = i; j < this.length - 1; j++) { data[j] = data[j+1] ; } return true; } } public static void main (String[] args) { List list1 = new List(1,"字",2,"123"); System.out.print("现在的表:"); for(int i = 0; i < list1.length; i++) { System.out.print(list1.GetElem(i) + ","); } System.out.println(); System.out.print("这个是空的吗"); System.out.println(list1.ListEmpty()); System.out.print("1的位置在"); System.out.println(list1.LocateElem(1)); System.out.print("字的位置在"); System.out.println(list1.LocateElem("字")); System.out.print("在2的位置添加一个1"); System.out.println(list1.ListInsert(2, 1)); System.out.print("现在的表:"); for(int i = 0; i < list1.length; i++) { System.out.print(list1.GetElem(i) + ","); } System.out.println(); System.out.print("把1的位置的数据删掉"); System.out.println(list1.ListDelete(1)); System.out.print("现在的表:"); for(int i = 0; i < list1.length; i++) { System.out.print(list1.GetElem(i) + ","); } System.out.print("清空表:"); list1.ClearList(); System.out.print("这个是空的吗"); System.out.println(list1.ListEmpty()); } }
main方法的输出结果是:
现在的表:1,我,2,123, 这个是空的吗false 1的位置在0 字的位置在0 在2的位置添加一个1true 现在的表:1,我,1,2, 把1的位置的数据删掉true 现在的表:1,1,2,2,清空表:这个是空的吗true