本文均为个人见解,如有误解,欢迎留言~~~
定义
栈(stack):是一种后进先出的数据结构,stack只能不断的往栈中压入数据(push),就像往瓶子里加糖,最后放进去的那颗最早被拿出(pop)。
队列(Queue):是先进先出的数据结构,最先进入碎裂的元素最早出队,就跟排队买饭一样,先排队先吃到饭。
方法
栈方法
方法 | 解释 |
---|---|
push | 把元素压入栈中 |
pop | 把栈顶的元素弹出 |
peek | 取栈顶元素但不弹出 |
empty | 判断栈是否为空 |
search | 查询某个对象在栈中的位置,以1为基准 |
add | 添加一个元素 |
addElement | 也是添加 |
addAll | 添加一组 |
Stack<Integer> stack = new Stack();
boolean empty = stack.empty(); //true
stack.push(11); //[11]
stack.push(12); //[11,12]
stack.push(13); //[11,12,13]
boolean empty1 = stack.empty(); // false
Integer peek = stack.peek(); //13
Integer pop = stack.pop(); //13,但是栈中没有了13
int search = stack.search(2); //-1.因为栈中没有这个元素
int search1 = stack.search(12); //1,在第一位
stack.add(10); // size = 3,[11,12,10]
stack.add(1,14); // size = 4,[11,14,12,10]
stack.addElement(15); // size = 5,[11,14,12,10,15]
stack 扩展了Vactor
队列方法
详解:Deque继承了Queue ,为其子类
方法 | 解释 |
---|---|
offer | 往队列的加入元素,若超出队列容量限制,优先级高于以上方法 |
add | 往队列的加入元素,若没有可用空间,则抛出异常 |
poll | 取出并移除队列的头,若队为空,返回null |
remove | 取出并移除队列的头,队列为空时,抛异常,移除的是元素,而不是指针 |
peek | 取出不移除,若队为空,返回null |
element | 取出不移除,若队为空,抛异常 |
addfirst | 在队列的首位加入一个元素 |
addLast | 队列中在最后加入一个元素 |
pollFirst | 获取头元素,同理last |
peekFirst | 获取头元素不移除,同理last |
getfirst | 获取第一个,同理last |
contains | 包含某个元素,返回boolean |
clear | 清空整个队列 |
事例代码块:
Deque<Integer> arrayDeque = new ArrayDeque<>(2);
arrayDeque.add(10);
arrayDeque.addLast(11);
arrayDeque.addFirst(12);
//添加元素
boolean offer = arrayDeque.offer(13);
boolean add = arrayDeque.add(14);//没有空间抛出异常
//获取头,并移除
Integer poll = arrayDeque.poll();//null
Integer remove1 = arrayDeque.remove();//没有元素抛出异常
boolean remove = arrayDeque.remove(1);//false
boolean remove2 = arrayDeque.remove(10);//true
//获取头不移除
Integer peek1 = arrayDeque.peek();//null
Integer element = arrayDeque.element();//没有元素抛出异常
//包含某个元素
boolean contains = arrayDeque.contains(13);//true
类之间关系图展示: