`

读Stack源码

阅读更多
//一个堆栈结构的集合(先进后出)继承于Vector
//基本已被ArrayDeque取代

//先看构造函数
public Stack() {
    }

//新增一个元素
 public E push(E item) {
        addElement(item);

        return item;
    }

public synchronized void addElement(E obj) {
        modCount++;
        ensureCapacityHelper(elementCount + 1);
        elementData[elementCount++] = obj;
    }

//取出并移除一个元素
public synchronized E pop() {
        E       obj;
        int     len = size();

        obj = peek();
        removeElementAt(len - 1);

        return obj;
    }

//取出一个元素
 public synchronized E peek() {
        int     len = size();

        if (len == 0)
            throw new EmptyStackException();
        return elementAt(len - 1);
    }

//队列是否为空
public boolean empty() {
        return size() == 0;
    }


//返回对象在队列中的位置从1开始
public synchronized int search(Object o) {
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }
分享到:
评论

相关推荐

    单点登录源码

    单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用户权限管理系统 ...

    vld(Visual Leak Detector 内存泄露检测工具 源码)

     BOOL StackWalk64( DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE...

    BACnet读属性命令使用示例

    这里简单介绍在linux环境下基于bacnet-stack-0.8.3源码实现的bacrp 和bacrmp的两个读属性demo程序使用方式,为即将使用bacnet的初学者提供便利,在实际现场中可以通过这些命令帮助新手快速排查问题。

    传智播客扫地僧视频讲义源码

    17_配置文件读写案例_读配置项实现 18_配置文件读写案例_写和修改接口实现 19_文件加密案例_思路分析 20_文件加密案例_文件搬运实现 21_文件加密案例_文件加密功能集成 22_文件加密案例_文件加密实现 23_作业 24_...

    java代码生成器源码-bnfc:BNF转换器

    java代码生成器源码 BNF 转换器 什么是 BNF 转换器? BNF 转换器 (bnfc) 是一种编译器构建工具,可从标记的 BNF 语法生成编译器前端。 它目前能够生成 Haskell、Agda、C、C++、Java 和 OCaml,以及 XML 表示。 给定...

    linux内核 0.11版本源码 带中文注释

    \ // 0x71 是读端口号。 } ) #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) // 将BCD 码转换成数字。 static void time_init (void) // 该子程序取CMOS 时钟,并设置开机时间??startup_time(秒)...

    Windbg 入门培训.pdf

    4. 察看某一个内存地址是否可以读/写,内容是什么 5. 列举线程的 call stack(需要 symbol) 6. 切换到 call stack 上的任意函数的上下文,察看这个函数当前的局部变量 7. 对某一个地址上的信息,指定 symbol 中的某...

    uboott移植实验手册及技术文档

    (2)进入 U-Boot源码目录 #cd u-boot-1.3.1 (3)创建自己的开发板: #cd board #cp smdk2410 fs2410 –a #cd fs2410 #mv smdk2410.c fs2410.c #vi Makefile (将 smdk2410修改为 fs2410) #cd ../../...

    ICTC-6

    N-最短路径中文词语粗分是分词过程中非常重要的一步,而原有ICTCLAS中该部分代码也是我认为最难读懂的部分,到现在还有一些方法没有弄明白,因此我几乎重写了NShortPath类。要想说明N-最短路径代码是如何工作的并不...

    c语言编写单片机技巧

    MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一...

    超级有影响力霸气的Java面试题大全文档

    例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...

    java 面试题 总结

    例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...

Global site tag (gtag.js) - Google Analytics