扫码观看视频课程
栈是一种 后进先出 (last in first out,LIFO)的数据结构。在栈中,元素可以从栈顶添加,从栈顶删除,这两个操作被称为“压栈”和“弹栈”。
在Java中,栈是通过接口实现的,其中最常用的是java.util.Stack类,它继承了Vector类,实现了一个基本的栈。栈是基于数组实现的,它使用一个数组来存储栈中的元素,并维护一个指向栈顶的指针。当一个元素被压入栈中时,它将被放置在栈顶位置,指针也会指向它;当一个元素从栈中弹出时,指针将指向该元素之前的一个元素。栈支持的方法如表2-4所示。
表2-4 栈支持的方法
在Java中,队列和栈的区别主要包括数据结构、插入和删除的操作方式、使用场景和时间复杂度等方面,具体区别如表2-5所示。
表2-5 队列和栈的区别