JAVA 集合类(java.util)源码阅读笔记------Stack

来源:互联网 发布:大数据专业课程设置 编辑:程序博客网 时间:2024/06/05 04:58

一、继承关系

public class Stack<E> extends Vector<E>

(1)继承自Vector类,线程安全。可按位置访问,可clone,可序列化
Vecotr实现了
(2)List接口:继承自Collection接口,同时自己也定义了一系列索引访问功能。
(3)RandomAccess:空接口,实现该接口代表该类拥有随机访问list对象的能力。
(4)Cloneable:空接口,实现该接口,重写Object的clone方法,否则会抛出异常。调用super.clone()实现对象的复制,如果对象中有引用,可以在super.clone后面进行处理。
(5)java.io.Serializable:空接口,实现该接口代表该类可序列化

二、方法说明

(1)push:addElement(item)是一个同步的方法

    public E push(E item) {        addElement(item);        return item;    }


(2)pop:removeElementAt(len - 1)是一个同步的方法

    public synchronized E pop() {        E       obj;        int     len = size();//peek也是线程安全的        obj = peek();        removeElementAt(len - 1);        return obj;    }

(3)peek:elementAt(len - 1)同步方法

    public synchronized E peek() {        int     len = size();        if (len == 0)            throw new EmptyStackException();        return elementAt(len - 1);    }


(4)empty:判断是否为空

    public boolean empty() {        return size() == 0;    }


(5)search:同步方法

    public synchronized int search(Object o) {//同步方法        int i = lastIndexOf(o);        if (i >= 0) {            return size() - i;        }        return -1;    }




原创粉丝点击