Java 中静态队列和单链表的区别。
java 8object oriented programmingprogramming更新于 2025/11/21 16:44:17
在 Java 中,列表和队列都是作为对象的有序列表引入的,其中同一个对象可以添加多次。两者的区别在于添加元素的方式。在队列中,所有元素都插入到后面并从前面删除,而我们可以在列表中的任何位置添加元素。
| Sr.否。 | 键 | 静态队列 | 单链表 |
|---|---|---|---|
| 1 | 数据初始化。 | 静态队列以先进先出 (FIFO) 的方式工作,因为所有元素都插入到队列的后部并从队列的前面移除。 | 对于单链表,可以在列表的任何位置添加元素,也可以根据列表中的索引获取任何元素。 |
| 2 | 内部实现。 | 队列内部实现了数组,这使得搜索和添加元素的速度更快。 | 另一方面,列表维护节点和指针,用于存储数据和下一个节点的地址 |
| 3 | 大小 | Statis 队列的大小是固定的,不能改变。队列的大小在声明时定义。 | 列表没有固定的大小,因此在声明列表时不需要大小。 |
| 4 | 性能 | 静态队列在搜索元素时速度更快,而删除元素时速度较慢,因为删除需要将所有剩余元素向前移动一个位置。 | 由于列表是基于节点的实现,因此搜索速度较慢,但删除速度更快,因为只需要更新一个节点的指针地址,而不是更新整个列表。 |
| 5 | 数据迁移。 | 静态队列始终基于先进先出 (FIFO) 技术。 | 另一方面,列表可以是先进先出 (FIFO) 或后进先出 (LIFO)。 |
静态队列和单链表的示例。
StaticQueueDemo.java
import java.util.*;
public class StaticQueueDemo {
public static void main(String args[]) {
PriorityQueue < String > queue = new PriorityQueue < String > ();
queue.add("Jack");
queue.add("Smith");
queue.add("John");
System.out.println("head:" + queue.element());
System.out.println("head:" + queue.peek());
System.out.println("iterating the queue elements:");
Iterator itr = queue.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
queue.remove();
queue.poll();
System.out.println("after removing two elements:");
Iterator < String > itr2 = queue.iterator();
while (itr2.hasNext()) {
System.out.println(itr2.next());
}
}
}
输出
head:Jack head:Jack iterating the queue elements: Jack Smith John after removing two elements: Smith
示例
LinkedListDemo.java
import java.util.*;
public class LinkedListDemo {
public static void main(String[] args) {
// 创建 LinkedList
LinkedList < String > friends = new LinkedList <> ();
// 使用 add() 方法将新元素添加到 LinkedList 的末尾。
friends.add("John");
friends.add("Jack");
friends.add("Smith");
friends.add("Chris");
System.out.println("Initial LinkedList : " + friends);
// 在 LinkedList 的指定位置添加元素
friends.add(3, "Lisa");
System.out.println("After add(3, \"Lisa\") : " + friends);
}
}
输出
Initial LinkedList : [John, Jack, Smith, Chris] After add(3,"Lisa") : [John, Jack, Smith, Chris, Lisa]

