`

读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;
    }
分享到:
评论

相关推荐

    stack_machine源码

    《stack_machine源码解析》 在编程领域,汇编器是一种至关重要的工具,它将人类可读的汇编语言转化为机器可执行的二进制代码。本文将深入探讨一款名为"stack_machine"的汇编器的C语言源码,旨在帮助读者理解其工作...

    yocto-core-stack-源码.rar

    "yocto-core-stack-源码.rar"包含的源码可能涵盖了YOCTO项目的多个核心组件,包括基础工具链、配方系统以及相关的构建脚本。 1. **BitBake**:YOCTO的核心构建工具,它读取名为"recipes"的配置文件,并负责下载、...

    STL 源码 -- 值得一读

    6. 适配器(Adapters):如stack、queue、priority_queue,它们是对容器的封装,提供了符合特定逻辑(如后进先出LIFO、先进先出FIFO、优先级队列)的接口。 在阅读STL源码时,可以关注以下几个关键点: 1. 模板元...

    MySQL_源码分析

    4. **社区与文档**:积极参与MySQL的开发者社区,如MySQL官方论坛、Stack Overflow等,可以获得宝贵的资源和解答疑问的机会。同时,仔细研读官方文档、API指南,也是深入理解源码不可或缺的一步。 ### 实践案例与...

    前端项目-stacktrace.js.zip

    此外,stacktrace.js库还提供了处理和格式化堆栈跟踪的工具,如`stacktrace-gps`和`pretty-print-stacktrace`,前者可以定位到源代码的具体位置,后者则能将原始堆栈信息转化为更易读的格式,这对于开发者来说无疑...

    aa_python_Decoded_ionCube_源码.zip

    这可能意味着原始的Python源码可能是通过某种方式解密或反混淆的,以使其可读。 描述中的信息与标题相同,没有提供额外的技术细节。不过,我们可以从这个信息推测,这个压缩包可能包含了一些原本被混淆或加密的...

    wpf 教程 源码 wpf 实例

    1. **XAML语言**:WPF使用XML-based的语言XAML(eXtensible Application Markup Language)来描述用户界面,使得界面设计更为直观和可读。 2. **数据绑定**:WPF的数据绑定机制允许UI元素直接与后台数据模型关联,...

    前端开源库-format-stack

    `format-stack` 库通过格式化和颜色标记这些信息,使其更易读,便于理解和分析。 这个库的使用非常简单,你可以将其引入你的项目,然后调用相应的API来处理堆栈信息。它可能提供了如 `format` 或 `colorize` 这样的...

    htlm网页源码

    HTML5的一个重要目标是提高语义性,使得源码更易读、易解析,利于搜索引擎优化和无障碍访问。例如,使用、、等元素代替无语义的,帮助屏幕阅读器理解网页内容结构。 8. 布局与网格系统: 在HTML中,布局通常借助CSS...

    数据结构源码

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织和管理数据,以便进行高效的...此外,源码还可以帮助你学习如何编写清晰、可读的代码,遵循良好的编程规范,这些都是成为一名优秀程序员的关键要素。

    数据结构与问题求解——java语言描述 源码

    在Java中,这些数据结构可以通过内置类如ArrayList、LinkedList、Stack、Queue、HashSet和HashMap等来实现。例如,`Graph.java`文件很可能包含了图的实现,可能包括邻接矩阵或邻接表等表示方法,以及图的遍历算法如...

    C-sharp源码100例

    C#(读作"C sharp")是由微软公司开发的一种面向对象的编程语言,它被设计用于构建Windows应用程序、网络服务、移动应用以及游戏等。C#语言以其简洁、类型安全和性能高效的特点,深受开发者的喜爱。它吸收了C++和...

    SimpleTimeKeeper-源码.rar

    3. **数据结构和算法**:为了存储和管理多个计时任务,源码可能会使用列表(List)、队列(Queue)或栈(Stack)等数据结构。此外,计时器可能使用了基于系统时钟的时间计算算法,确保精度。 4. **多线程处理**:在...

    ble_Stack_1.3.2.zip_4 3 2 1_ble-stack-1.3_ble蓝牙_蓝牙协议栈_蓝牙底层

    在BLE Stack 1.3.2中,CC2540的底层代码实现了协议栈的硬件驱动部分,包括RF收发、电源管理、中断处理等功能。底层代码与协议栈紧密配合,确保了BLE设备在低功耗模式下稳定运行,同时提供高效的无线通信。 **总结**...

    python核心编程源码, python练习的数十个小例子

    Python是一种广泛使用的高级编程语言,以其易读性、简洁性和丰富的库支持而闻名。"Python核心编程源码,python练习的数十个小例子"这个资源集合是针对Python学习者的一个宝贵资料,无论你是初学者还是经验丰富的...

    tftp源码解析

    - `stackSize`: TFTP任务的栈大小。 - `nDirectories`: 允许读取的目录数量。 - `directoryNames`: 目录名称数组。 - `noControl`: 是否需要访问控制。如果为`TRUE`,则表示不需要访问控制。 - `maxConnections`: ...

    BLE-CC254x-1.4 源码压缩包

    1. **计步器**:演示了如何通过BLE将传感器数据(如加速度计读数)传输到智能手机或其他设备,用于健康和健身应用。 2. **防丢器**:展示了BLE如何用于物品追踪,当物品与手机分离超过一定距离时,手机会收到提醒。...

    数据结构及源码

    源码则是实现这些数据结构的编程语言代码,通常是程序员可读的形式,用于理解算法的工作原理和实现细节。在这个“数据结构及源码”主题中,我们将深入探讨C++实现的数据结构及其背后的算法。 1. **数组**:数组是最...

    Markdown介绍文档源码

    由于Markdown的通用性和可移植性,许多平台都支持Markdown,例如GitHub、Stack Overflow、CSDN博客等。CSDN博客链接提供的教程(http://blog.csdn.net/a987625922/article/details/51577638)可以让你深入了解...

    stacktrace:用于存储和打印回溯的C ++库

    由于提供的压缩包文件名为"stacktrace-master",我们可以推断这是一个源码仓库的主分支,其中可能包含了库的源代码、示例、文档以及构建脚本。要使用这个库,你需要先将其解压,然后按照README文件的指示进行编译和...

Global site tag (gtag.js) - Google Analytics