java泛型单向链表通过node节点类和linkedlist链表类实现,含addfirst、addlast、get等操作;节点含数据与next引用,链表维护head和size,支持类型安全的增删查。

Java 中实现泛型单向链表,核心是定义一个带类型参数的节点类(Node<t></t>)和一个封装操作的链表类(LinkedList<t></t>),通过引用连接节点,支持添加、删除、遍历等基本操作。
定义泛型节点类
每个节点保存数据和指向下一个节点的引用:
// 内部静态类,避免持有外部类引用
private static class Node
T data;
Node
Node(T data) {
this.data = data;
this.next = null;
}
}
实现泛型链表主体类
维护头节点(head),提供常用方法:
public class LinkedList
Node
int size;
public LinkedList() {
head = null;
size = 0;
}
public void addFirst(T data) {
Node
newNode.next = head;
head = newNode;
size++;
}
public void addLast(T data) {
Node
if (head == null) {
head = newNode;
} else {
Node
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
size++;
}
public T get(int index) {
if (index = size) throw new IndexOutOfBoundsException();
Node
for (int i = 0; i
current = current.next;
}
return current.data;
}
public boolean isEmpty() {
return head == null;
}
public int size() {
return size;
}
}
使用示例
可以存放任意引用类型,编译期检查类型安全:
public static void main(String[] args) {
LinkedList
list.addLast("Hello");
list.addLast("World");
list.addFirst("Java");
for (int i = 0; i
System.out.println(list.get(i)); // Java → Hello → World
}
}
可选增强点
- 添加
remove(int index)或removeFirst()方法,注意更新head和size - 重写
toString()方便调试,用StringBuilder拼接所有元素 - 实现
Iterable<t></t>接口,支持 for-each 循环(需提供内部迭代器) - 对
null值支持做明确约定(例如允许存null,但get()返回null不代表越界)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











