隊(duì)列和棧是Java 7中兩個(gè)常用的數(shù)據(jù)結(jié)構(gòu)。它們都可以用來解決各種問題,但是它們之間有著本質(zhì)的不同。
隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),我們可以想象成排隊(duì)等候服務(wù)的人群。隊(duì)列有兩個(gè)基本操作:插入和刪除。在隊(duì)列末尾插入元素,從隊(duì)列的頭部刪除元素。
import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); // 插入元素 queue.offer("element 1"); queue.offer("element 2"); queue.offer("element 3"); // 刪除元素 String element = queue.poll(); System.out.println(element); // 輸出 “element 1” } }
棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),我們可以想象成摞在一起的書。棧也有兩個(gè)基本操作:壓入和彈出。向棧中壓入元素,在棧頂彈出元素。
import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<String> stack = new Stack<>(); // 壓入元素 stack.push("element 1"); stack.push("element 2"); stack.push("element 3"); // 彈出元素 String element = stack.pop(); System.out.println(element); // 輸出 “element 3” } }
不管是隊(duì)列還是棧,Java 7都提供了許多實(shí)現(xiàn)方式,包括LinkedList、PriorityQueue、ArrayDeque等。我們需要根據(jù)實(shí)際情況選擇合適的數(shù)據(jù)結(jié)構(gòu)。
上一篇java 聲明json
下一篇html的所有代碼大全