美文网首页
第 29 条:优先考虑泛型

第 29 条:优先考虑泛型

作者: 综合楼 | 来源:发表于2021-05-10 20:41 被阅读0次
    优先考虑泛型.jpeg
    未使用泛型
    // Object-based collection - a prime candidate for generics
    public class Stack {
        private Object[] elements;
        private int size = 0;
        private static final int DEFAULT_INITIAL_CAPACITY = 16;
        public Stack() {
            elements = new Object[DEFAULT_INITIAL_CAPACITY];
        }
        public void push(Object e) {
            ensureCapacity();
            elements[size++]=e;
        }
        public Object pop() {
            if (size == 0)
                throw new EmptyStackException();
            Object result = elements[--size];
            elements[size] = null;// Eliminate obsolete reference
            return result;
        }
        public boolean isEmpty() {
            return size == 0;
        }
        private void ensureCapacity() {
        if (elements.length == size)
            elements = Arrays.copyOf(elements, 2* size+1);
        }
    }
    
    
    使用泛型第一种
    // Object-based collection - a prime candidate for generics
    public class Stack<E> {
        private E[] elements;
        private int size = 0;
        private static final int DEFAULT_INITIAL_CAPACITY = 16;
        public Stack() {
            elements =(E[]) new Object[DEFAULT_INITIAL_CAPACITY];
        }
        public void push(E e) {
            ensureCapacity();
            elements[size++]=e;
        }
        public E pop() {
            if (size == 0)
                throw new EmptyStackException();
            E result = elements[--size];
            elements[size] = null;// Eliminate obsolete reference
            return result;
        }
        public boolean isEmpty() {
            return size == 0;
        }
        private void ensureCapacity() {
        if (elements.length == size)
            elements = Arrays.copyOf(elements, 2* size+1);
        }
    }
    
    
    使用泛型第二种
    // Object-based collection - a prime candidate for generics
    public class Stack<E> {
        private Object[] elements;
        private int size = 0;
        private static final int DEFAULT_INITIAL_CAPACITY = 16;
        public Stack() {
            elements = new Object[DEFAULT_INITIAL_CAPACITY];
        }
        public void push(Object e) {
            ensureCapacity();
            elements[size++]=e;
        }
        public E pop() {
            if (size == 0)
                throw new EmptyStackException();
            E result =(E) elements[--size];
            elements[size] = null;// Eliminate obsolete reference
            return result;
        }
        public boolean isEmpty() {
            return size == 0;
        }
        private void ensureCapacity() {
        if (elements.length == size)
            elements = Arrays.copyOf(elements, 2* size+1);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:第 29 条:优先考虑泛型

          本文链接:https://www.haomeiwen.com/subject/wljjdltx.html