StackArray类
import java.util.Arrays;
public class StackArray<T> {
T[] ars;
private int default_capacity=10;
//元素个数
private int size=0;
private int top=-1;
@SuppressWarnings("unchecked")
public StackArray()
{
ars=(T[])new Object[default_capacity];
}
@SuppressWarnings("unchecked")
public StackArray(int capacity)
{
ars=(T[])new Object[capacity];
}
public void push(T data)
{
if (size==ars.length)
{
//扩容20%
@SuppressWarnings("unchecked")
T[] newars=(T[])new Object[(int)(ars.length*1.2)];
System.arraycopy(ars, 0, newars, 0, ars.length);
Arrays.fill(ars, null);
ars=newars;
push(data);
}
else
{
ars[++top]=data;
size++;
}
}
public T Pop()
{
if (top==-1)
{
return null;
}
else
{
T topdata=ars[top];
ars[top--]=null;
size--;
return topdata;
}
}
public int getSize()
{
return this.size;
}
public T getTopData()
{
return ars[top];
}
public int getTopIndex()
{
return this.top;
}
}
测试类
public class StackArrayTest {
public static void main(String[] ars)
{
StackArray<Integer> sa=new StackArray<Integer>(5);
sa.push(1);
sa.push(2);
sa.push(3);
sa.push(4);
sa.push(5);
sa.push(6);
while (sa.getTopIndex()>=0)
{
System.out.println(sa.Pop());
}
}
}