针对一个线性表而言。无论它的实际完成怎样,可是他们的方式涵数名和完成实际效果应当一致(即操作方法同样、达到逻辑性上实际效果同样,区别的是运作高效率)。线性表的定义与Java的插口/抽象类有那麼一些类似。最知名的便是List的Arraylist和LinkedList,List是一种逻辑性上的构造,表明这类构造为线性表,而ArrayList,LinkedList大量的是一种物理学构造(二维数组和链表)。因此根据面向对象编程的编程思维,我们可以将线性表写出一个插口,而实际完成的顺序表和链表的类能够完成这一线性表的方式,提升 程序流程的易读性,也有一点较为关键的,还记得入门算法设计与优化算法情况下完成的线性表全是固定不动种类(int),伴随着专业知识的发展,大家理应选用泛型来完成更有效。
例如:
package LinerList;
public interface ListInterface {
void Init(int initsize);//初始化表
int length();
boolean isEmpty();//是否为空
int ElemIndex(T t);//找到编号
T getElem(int index) throws Exception;//根据index获取数据
void add(int index,T t) throws Exception;//根据index插入数据
void delete(int index) throws Exception;
void add(T t) throws Exception;//尾部插入
void set(int index,T t) throws Exception;
String toString();//转成String输出
}