Java系列(九)__链表
1、链表
学习到现在有两个概念没有讲解透彻:
1.1、基本操作形式
范例:问题的引出
class Emp { } public class LinkDemo { } |
范例:定义节点类
class Node { } |
范例:设置节点的关联
public class LinkDemo { } |
范例:通过递归实现输出
public class LinkDemo { } |
1.2、链表的基本概念
范例:实现代码
class Node { } class Link { } public class LinkDemo { } |
1.3、开发可用链表
· Node类是整个链表节点配置关系的核心部分,但是用户不需要知道Node类存在,但是在之前的程序,发现Node类用户可以直接去使用,不合法;
范例:首先修改程序的基本组成
class Link { } |
1.3.1、增加数据:public void add(数据类型 对象)
1、
2、
class Link { } |
1.3.2、取得保存的对象个数:public int size()
1、
|
2、
|
3、
|
1.3.3、判断是否是空链表:public boolean isEmpty()
1、
|
1.3.4、清空链表:public void clean()
|
1.3.5、取得指定索引位置的数据:public 数据类型 get(int index)
1、
|
2、
|
3、
|
1.3.6、判断指定数据是否存在:public boolean contains(数据类型 对象)
1、
|
2、
|
1.3.7、删除数据:public void remove(数据类型 对象)
情况一:要删除的数据是根节点(应该由Link类完成,而且在Link类里面一定已经判断完了根节点)
情况二:要删除的节点不是根节点(Node类进行,至少从第二个节点开始)
1、
|
2、
|
1.3.8、返回全部数据:public 数据类型 [] toArray()
1、
|
2、
|
3、
|
1.4、保存其它对象
· 查询数据和删除数据依靠的是String的equals()方法,这个方法的实际功能是对象比较,那么如果是用户对象,则对象所在的类一定要编写对象比较操作(compare());
第一步:定义自己的类,提供好对象比较方法
class Person { } |
第二步:修改Link类,此时保存的类型是Person,比较的方法是compare()
class Link { } public class LinkDemo { } |
2、链表习题讲解_A
之所以不再使用对象数组而使用链表进行替代,很大一个关系在于,链表是一种动态的顺序结构,可以实现轻松的数据删除与查询功能,这一点是对象数组所不具备的功能。
0、
1、