Java经典实例:进阶版堆栈实现,支持任何对象类型详解编程语言

支持任何对象类型,有更多的错误检查。

package Stack; 
 
/** 
 * Created by Frank 
 */ 
public class MyStack<T> implements SimpleStack<T> { 
 
    public static void main(String[] args) { 
        MyStack<String> stack = new MyStack<>(); 
        stack.push("Frank"); 
        stack.push("Smith"); 
        System.out.println(stack.pop()); 
    } 
 
    private int depth = 0; 
    public static final int DEFAULT_INITIAL = 10; 
    private T[] stack; 
 
    public MyStack() { 
        this(DEFAULT_INITIAL); 
    } 
 
    public MyStack(int howBig) { 
        if (howBig <= 0) { 
            throw new IllegalArgumentException(howBig + " must be positive, but was " + howBig); 
        } 
        stack = (T[]) new Object[howBig]; 
    } 
 
    @Override 
    public boolean empty() { 
        return depth == 0; 
    } 
 
    @Override 
    public void push(T obj) { 
        stack[depth++] = obj; 
    } 
 
    @Override 
    public T pop() { 
        --depth; 
        T tmp = stack[depth]; 
        stack[depth] = null; 
        return tmp; 
    } 
 
    @Override 
    public T peek() { 
        if (depth == 0) { 
            return null; 
        } 
        return stack[depth - 1]; 
    } 
}

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15859.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论