1.栈
1.1栈的概念
栈是一种特殊的线性表,只允许在固定的一端进行插入或删除操作。进行操作的一端被称为栈顶,另一端称为栈底。
遵循先进后出的原则
1.2栈的使用
方法 | 功能 |
Stack() | 构造一个空的栈 |
E push(E e) | 将e入栈,并返回e |
E pop() | 将栈顶元素出栈并返回 |
E peek() | 获取栈顶元素 |
int size() | 获取栈中有效元素个数 |
boolean empty() | 检测栈是否为空 |
int search(Obejct o) | 返回一个对象在此栈上基于1的位置(初始下标为1) |
import java.util.Stack;
public class Test {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();//创建一个栈
stack.push(1);//压栈
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
System.out.println("栈为:" + stack);
stack.pop();//出栈
System.out.println("栈为:" + stack);
int tmp = stack.peek();//获取栈顶元素
System.out.println("tmp为:" + tmp);
System.out.println("栈为:" + stack);
int size = stack.size();
System.out.println("size为:" + size);
int searchIndex = stack.search(4);//栈顶开始往下数
System.out.println("searchIndex为:" + searchIndex);
}
}
2.队列
2.1概念
队列只允许在一端插入,另一头删除的特殊线性表。进行插入操作的一端称为队尾,进行删除操作的一头称为队头。有着先进先出的特性。
2.2队列的使用
队列的底层实现是一个链表
方法 | 功能 |
boolean offer(E e) | 入队列 |
E poll() | 出队列 |
peek() | 获取队头元素 |
int size() | 获取队列中有效元素个数 |
boolean isEmpty() | 检测队列是否为空 |