(3)Stack
package com.coding.basic;
import org.junit.Test;
public class Stack {
private ArrayList elementData = new ArrayList();
/**
* 压栈方法
*
* @param o
*/
public void push(Object o) {
if (o != null)
elementData.add(o);
}
/**
* 弹栈方法
*
* @return
*/
public Object pop() {
Object result = elementData.remove(elementData.size() - 1);
return result;
}
/**
* 查看栈顶对象
*
* @return
*/
public Object peek() {
Object result = elementData.get(elementData.size() - 1);
return result;
}
/**
* 判断是否为空
*
* @return
*/
public boolean isEmpty() {
return elementData.size() == 0;
}
/**
* 获取栈的长度
*
* @return
*/
public int size() {
return elementData.size();
}
/*------------------------------------------------------单元测试----------------------------------------------------*/
/**
* push(Object obj)方法测试
*/
@Test
public void TestPushFunction() {
Stack stack = new Stack();
for (int x = 0; x < 100; x++) {
stack.push(x);
}
}
/**
* peek()方法测试
*/
@Test
public void TestPeekFunction() {
Stack stack = new Stack();
for (int x = 0; x < 100; x++) {
stack.push(x);
}
for (int x = 0; x < stack.size(); x++) {
System.out.println(x + ":" + stack.peek());
}
}
/**
* pop()方法测试
*/
@Test
public void TestPopFunction() {
Stack stack = new Stack();
for (int x = 0; x < 100; x++) {
stack.push(x);
}
System.out.println("before:" + stack.size());
for (int x = 0; x < stack.size();) {
System.out.println(stack.pop());
}
System.out.println("after:" + stack.size());
}
}