栈实现
栈功能:后进先出,进栈,出栈,返回栈元素;
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();
}
}