您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)java中的棧和隊(duì)列的區(qū)別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
隊(duì)列(Queue):是限定只能在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表;
棧(Stack):是限定只能在表的一端進(jìn)行插入和刪除操作的線性表。
區(qū)別如下:
一、規(guī)則不同
1、隊(duì)列:先進(jìn)先出(First In First Out)FIFO
2、棧:先進(jìn)后出(First In Last Out )FILO
二、對(duì)插入和刪除操作的限定不同
1、隊(duì)列:只能在表的一端進(jìn)行插入,并在表的另一端進(jìn)行刪除;
2、棧:只能在表的一端插入和刪除。
三、遍歷數(shù)據(jù)速度不同
1、隊(duì)列:基于地址指針進(jìn)行遍歷,而且可以從頭部或者尾部進(jìn)行遍歷,但不能同時(shí)遍歷,無(wú)需開辟空間,因?yàn)樵诒闅v的過程中不影響數(shù)據(jù)結(jié)構(gòu),所以遍歷速度要快;
2、棧:只能從頂部取數(shù)據(jù),也就是說最先進(jìn)入棧底的,需要遍歷整個(gè)棧才能取出來,而且在遍歷數(shù)據(jù)的同時(shí)需要為數(shù)據(jù)開辟臨時(shí)空間,保持?jǐn)?shù)據(jù)在遍歷前的一致性。
四、接口實(shí)現(xiàn)的異同
隊(duì)列和棧由Collcetion接口實(shí)現(xiàn),隊(duì)列由Queue接口實(shí)現(xiàn),棧由List接口實(shí)現(xiàn)。
五、遍歷數(shù)據(jù)速度的異同
棧只能從頭部取數(shù)據(jù),也就最先放入的需要遍歷整個(gè)棧最后才能取出來,而且在遍歷數(shù)據(jù)的時(shí)候還得為數(shù)據(jù)開辟臨時(shí)空間,保持?jǐn)?shù)據(jù)在遍歷前后的一致性。
隊(duì)列基于地址指針進(jìn)行遍歷,而且可以從頭或尾部開始遍歷,無(wú)需開辟臨時(shí)空間,速度要快的多。
看完上述內(nèi)容,你們對(duì)java中的棧和隊(duì)列的區(qū)別有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。