Java中的隊(duì)列和棧是兩種重要的數(shù)據(jù)結(jié)構(gòu),可以用于解決很多實(shí)際問(wèn)題。
隊(duì)列是一種“先進(jìn)先出”的數(shù)據(jù)結(jié)構(gòu),可以把它想象成排隊(duì)等待服務(wù)的人群。Java中提供了Queue接口,常用的實(shí)現(xiàn)類(lèi)有LinkedList和ArrayDeque。以下是一個(gè)使用LinkedList實(shí)現(xiàn)的隊(duì)列的示例:
Queue<String> queue = new LinkedList<>(); queue.offer("A"); queue.offer("B"); queue.offer("C"); while (!queue.isEmpty()) { System.out.println(queue.poll()); }
上述代碼先創(chuàng)建一個(gè)LinkedList實(shí)例,并將A、B、C三個(gè)元素入隊(duì)。然后,進(jìn)入循環(huán),每次從隊(duì)列中取出一個(gè)元素并打印,直到隊(duì)列為空為止。運(yùn)行結(jié)果是:
A B C
棧是一種“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),可以把它想象成疊在一起的盤(pán)子。Java中提供了Stack類(lèi),它繼承自Vector,但通常不建議使用Stack,而是使用Deque接口和LinkedList實(shí)現(xiàn)棧。以下是一個(gè)使用LinkedList實(shí)現(xiàn)的棧的示例:
Deque<String> stack = new LinkedList<>(); stack.push("A"); stack.push("B"); stack.push("C"); while (!stack.isEmpty()) { System.out.println(stack.pop()); }
上述代碼先創(chuàng)建一個(gè)LinkedList實(shí)例,并將A、B、C三個(gè)元素依次壓入棧。然后,進(jìn)入循環(huán),每次從棧中彈出一個(gè)元素并打印,直到棧為空為止。運(yùn)行結(jié)果是:
C B A
以上就是Java中隊(duì)列和棧的簡(jiǎn)單使用方法。