栈实现
栈功能:后进先出,进栈,出栈,返回栈元素;
-
package com.test.thread;
-
import java.util.LinkedList;
-
import java.util.Stack;
-
public class MyStack {
-
/* 声明容器 */
-
private LinkedList<Object> stack = new LinkedList<>();
-
public MyStack() {
-
}
-
/* 入栈,头部添加元素 */
-
public void push(Object obj){
-
stack.addFirst(obj);
-
}
-
/* 出栈,头部移除元素 */
-
public Object pop() {
-
if(isEmpty()) {
-
return null;
-
}
-
return stack.removeFirst();
-
}
-
/* 返回栈口元素 */
-
public Object peek() {
-
if(isEmpty()) {
-
return null;
-
}
-
return stack.getFirst();
-
}
-
/* 清空 */
-
public void clear() {
-
stack.clear();
-
}
-
/* 判断集合是否为空 */
-
public boolean isEmpty() {
-
return stack.isEmpty();
-
}
-
@Override
-
public String toString() {
-
return stack.toString();
-
}
-
public static void main(String[] args) {
-
Stack stack = new Stack();
-
stack.push("a");
-
stack.push("b");
-
stack.push("c");
-
stack.push("d");
-
System.out.println("原生Stack操作:");
-
System.out.println(stack);
-
System.out.println(stack.peek());
-
System.out.println(stack);
-
System.out.println(stack.pop());
-
System.out.println(stack);
-
MyStack myStack = new MyStack();
-
myStack.push("a");
-
myStack.push("b");
-
myStack.push("c");
-
myStack.push("d");
-
System.out.println("MyStack操作:");
-
System.out.println(myStack);
-
System.out.println(myStack.peek());
-
System.out.println(myStack);
-
System.out.println(myStack.pop());
-
System.out.println(myStack);
-
}
-
}
队列实现
队列特点:先进先出;
-
package com.test.thread;
-
import java.util.LinkedList;
-
import java.util.concurrent.ArrayBlockingQueue;
-
public class MyQueue {
-
/* 声明容器 */
-
private LinkedList<Object> queue = new LinkedList<>();
-
public MyQueue() {
-
}
-
/* 判断是否为空 */
-
public boolean isEmpty() {
-
return queue.isEmpty();
-
}
-
/* 清空 */
-
public void clear() {
-
queue.clear();
-
}
-
@Override
-
public String toString() {
-
return queue.toString();
-
}
-
/* 入列 */
-
public void put(Object obj) {
-
queue.addLast(obj);
-
}
-
/* 出列 */
-
public Object get() {
-
if(isEmpty()) {
-
return null;
-
}
-
return queue.removeFirst();
-
}
-
/* 返回头部元素 */
-
public Object getTop() {
-
if(isEmpty()) {
-
return null;
-
}
-
return queue.peekFirst();
-
}
-
}