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]

相关文章