由于数据本身不具备先后的关系,所以使用Node类来封装数据,同时利用Node来指向下一个节点。
1 简单链表的实现
节点类(Node):
数据测试:
这样写,结果没有问题,但是客户端做的事情太过多了,用户在操作的过程中要关心Node类是否存在,所有的节点的关系需要用户去处理,所以我们修改。
2 简单链表改进
针对上面的问题,我们需要定义一个工具来帮助客户端去隐藏所有的链表中给出的细节操作。添加Link工具类。
节点类:
Link类:
数据测试类:
现在这样设计,客户端不用去关注具体的Node以及引用的关系的细节,只关注了Link提供的方法;同时Link类的主要功能是控制Node类对象的产生和根节点的使用;Node类注重的是数据 的保存与引用 关系的分配。这样每个类的各做各的事。但是现在还有问题,因为Node类主要是给Link类来操作,但是现在我们可跳过Link类,直接去操作Node类,这样是没有任何意义存在的,所以我必须修改我们的设计结构,让Node 类只能让Link类使用,所以我们使用内部类来实现。
3 用内部类来实现链表
现在设计的结构已经可以说是定下来了,现在需要的是对功能的增加。
4 链表功能的完善
常用的功能已经基本上完成,但是这个链表基本上不能使用,因为我们的数据类型不可能只有String类型,而上面的代码是必须是String才可以正常使用。
5 通用链表
这里使用了泛型来处理不同的数据类型的问题,同时修改了返回数组的返回值修改成了Object类型。