链表
链表是Java面向对象中常用的语法,它是通过引用把节点对象联系起来,它与数组不同,数组是一个连续的空间,而链表不是,它可以放在任何地方,只要你存有数据的引用就可以访问该数据,所以链表包括俩个空间一个数据域和一个指针域:
数据域:储存数据的地方
指针域:存储下一个节点地址的地方
话不多说,我们还是用代码来解释链表:
建立一个链表
package List.Link;
public class LinkedList {
}
创建一个Node类,封装指针域和数据域
public class Node {
private Object data;//数据域
private Node next;//指针域
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
在这里我们用Object来储存数据,因为你不知道你要存储的数据是什么类型,我们也顺便介绍一下Object类:
Object类是所有类的公用父类,如果一个类没有明确是继承某个类,则该类默认是继承Object类,也可以说Object类可以引用任何数据类。
再写一个主函数
public class MainClass {
public static void main(String[] args) {
//
}
}
开始储存数据
由于我们的数据是Object类型可以储存任何数据,所以我在这里就用不同类型的数据
public class MainClass {
public static void main(String[] args) {
Node head = new Node();
head.setData("叶修");
Node a1 = new Node();
a1.setData(343);
Node a2 = new Node();
a2.setData(369.564);
大家有没有发现,我在这里只是了数据域却没有用指针域
这样的话就不是一个链表了
我们应该这样
public class MainClass {
public static void main(String[] args) {
Node head = new Node();
head.setData("叶修");
Node a1 = new Node();
a1.setData(343);
head.setNext(a1);
Node a2 = new Node();
a2.setData(369.564);
a1.setNext(a2);
将a1的地址赋head(首地址)所引用的指针域,a2同理
这就是最简单的一个链表,非常的简单,不过这是一个基础,我们可以在链表中定义许多方法,比如说增删改查,不过这个我们下次再说。