前言 :Java中是没有指针的,但是有引用(和指针类似),所以可以创建出链表
体会:对于初学Java的我来说,这门语言要写很多类 ,我刚开始也不会写链表,查了很多资料他们一个类里面有好多方法(set ,get...)一个类那么长,对于只是想写一个简单链表的我加重了很大负担,所以接下来的文章我会很简单的写出来。
第一步 :创建一个节点
public class node {
int data ; //其实和C语言一样都是数据域和next域
node next ;
public node() { //无参构造方法
}
public node(int data) { //有参构造方法
this. Data = data ;
}
} //节点类写完了
上边一个是无参构造方法 ,一个是有参构造方法,主要就是为了初始化变量;
而且构造方法主要是用在new()的时候(如果还不明白的话可以先看下面);
第二步 :将节点连接起来
补充(知道的话跳过就可以) :头插法 ;
下面代码中的 first 和 current 用来表示‘头节点’和‘当前所指节点’;
节点是一个一个连起来的,所以先有头节点然后才能连其他节点(处理方法不同);
import java.util.Scanner;
public class ListConnect {
node first ;
node current ;
public ListConnect() {
//无参构造方法(个人建议一定要写上)
}
public void connect() { //将节点连起来有两种方法 :头插法尾插法(这里用到的是头插法)
int n = 0 ;
Scanner sc = new Scanner(System.in); //这三行就是为下边获取数据
n = sc.nextInt();
while(n != -1) { //从这行开始连接节点(输入-1时截至)
node newnode = new node(n) ; //new 的时候用到有参构造方法创建了一个值为n的节点
if(first == null) { //判断是否为头节点(头节点和其它节点的处理不相同)
first = newnode ;
current = newnode ;
}
else {
current. Next = newnode ; //这里是点(相当于指针)
current = newnode ; //还看不懂的话可以把我的代码打一遍然后再去体会
}
n = sc.nextInt();
}
}
public void display() { //链表建完后遍历显示每个节点的值
node flag ;
flag = first;
while(flag != null) {
System.out.print(flag. Data +" ");
flag = flag. Next ;
}
}
}
为什么要推荐写无参构造方法 :如果自己不定义有参构造方法系统会自动成无参构造方法,但是当自己定义有参构造方法后系统就不会生成无参构造方法,这时候new()就会报错。
第三步 :测试
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ListConnect list = new ListConnect() ; //创建一个链表
list. connect() ;
list. display();
}
}
测试类就是创建一个对象然后进行功能测试
如果没有学会的话可以看下面的视频 :虽然用了变声器但是讲的课很好非常推荐学习文章来源:https://www.toymoban.com/news/detail-599379.html
如果有什么没明白可以再评论区留言。文章来源地址https://www.toymoban.com/news/detail-599379.html
到了这里,关于Java实现链表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!