`
chainhou
  • 浏览: 174928 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用java代码写一个堆栈

 
阅读更多
    public class WorkerStack {
        
        protected Worker[] workers = null;
        protected int end = 0;
        
        public WorkerStack(int size) {
            workers = new Worker[size];
        }
        
        /** 
         * Put the object into the queue. If the queue is full (for example if
         * the queue has been reduced in size) the object will be dropped.
         * 
         * @param   object  the object to be appended to the queue (first
         *                  element).
         */
        public void push(Worker worker) {
            if (end < workers.length) {
                workers[end++] = worker;
            } else {
                curThreads--;
            }
        }
        
        /**
         * Get the first object out of the queue. Return null if the queue
         * is empty. 
         */
        public Worker pop() {
            if (end > 0) {
                return workers[--end];
            }
            return null;
        }
        
        /**
         * Get the first object out of the queue, Return null if the queue
         * is empty.
         */
        public Worker peek() {
            return workers[end];
        }
        
        /**
         * Is the queue empty?
         */
        public boolean isEmpty() {
            return (end == 0);
        }
        
        /**
         * How many elements are there in this queue?
         */
        public int size() {
            return (end);
        }
        
        /**
         * Resize the queue. If there are too many objects in the queue for the
         * new size, drop the excess.
         * 
         * @param newSize
         */
        public void resize(int newSize) {
            Worker[] newWorkers = new Worker[newSize];
            int len = workers.length;
            if (newSize < len) {
                len = newSize;
            }
            System.arraycopy(workers, 0, newWorkers, 0, len);
            workers = newWorkers;
        }
    }

 以上代码来源于Tomcat 6源码

分享到:
评论

相关推荐

    java泛型容器堆栈代码

    Java泛型是Java编程语言中的一个特性,它允许在类、接口和方法中使用类型参数,从而提高了代码的重用性和安全性。在这个“java泛型容器堆栈代码”中,我们将会探讨Java如何利用泛型来创建高效且类型安全的容器,特别...

    用 Java 实现堆栈

    Java标准库还提供了一个名为`java.util.Stack`的类,它是Vector类的一个子类,可以直接用于创建堆栈。这个类提供了所有必要的堆栈操作,如`push()`, `pop()`, `peek()`, 和 `empty()`等。使用内置的Stack类可以简化...

    java 堆栈的演示程序

    此外,jsp页面中的每个动作、表达式和脚本let都会被转化为对应的Java代码,这些代码的执行同样依赖于堆栈。 在源代码设计中,我们可能看到如何使用`java.lang.Stack`类或者通过递归函数来模拟和演示堆栈的行为。`...

    堆栈实现的java计算器

    在这个Java计算器的实现中,我们首先将输入的表达式分解为一个个字符,然后使用堆栈来处理这些字符。遇到数字时,我们将它们压入堆栈作为操作数;遇到操作符时,我们比较其与栈顶操作符的优先级,如果当前操作符...

    打印JAVA堆栈的方法

    当一个方法被调用时,一个新的栈帧会被创建并压入堆栈;而当方法执行完毕,相应的栈帧就会被弹出堆栈。因此,Java堆栈记录了程序运行时的调用层次结构,这对于调试和性能分析具有重要意义。 ### 打印Java堆栈的重要...

    Java_用源代码片段装饰堆栈跟踪.zip

    压缩包中的`java-stacksrc_main.zip`可能包含了示例代码或者一个工具,用于生成带有源代码片段的堆栈跟踪。这可能是通过解析`.class`文件或者`.jar`文件的元数据,结合源代码目录结构,将源代码行号映射到堆栈跟踪中...

    Java堆栈分析服务器

    `jstack`是Java提供的一个命令行工具,它能打印出指定进程的线程堆栈信息。在这里,我们输入`jstack 29609`,查找nid=0x7450(或者其他高CPU占用线程对应的十六进制ID)的相关堆栈信息。这些信息会显示出每个线程...

    常用数据结构(堆栈,队列,列表)JAVA代码

    在Java中,这可能表示一个自定义的列表实现,用以存储和操作数据。 通过这些基本数据结构,开发者可以有效地处理各种计算任务,例如回溯算法、深度优先搜索、广度优先搜索、缓存管理和任务调度等。在`Main.java`中...

    数据结构-堆栈及其应用-Java代码实现

    这个过程可以通过自定义一个Stack类或者使用Java的java.util.Stack类来实现。通过这样的方法,我们能有效地解析和计算复杂的数学表达式。 总结起来,Java中的堆栈实现不仅可以帮助我们解决括号匹配问题,还能在编译...

    java堆栈详解.pdf

    Java 把内存分成两种,一种叫做栈...当在一段代码块中定义一个变量时,java 就在栈中 为这个变量分配内存空间,当超过变量的作用域后,java 会自动释放 掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。

    IBM java线程堆栈分析工具

    随着代码的执行,栈帧会不断推入和弹出,形成一个动态的堆栈结构。 IBM的jca467.jar工具是专为WAS设计的,它可以帮助开发者: 1. **获取线程堆栈信息**:工具能够快速地打印出服务器上所有线程的当前堆栈信息,这...

    一种基于源代码的Java代码混淆器的设计与实现.pdf

    Java代码混淆器是一种用于保护Java源代码安全的技术,通过让源代码变得难以理解和反编译,从而达到防止源代码泄露和被恶意利用的目的。在目前Java字节码反编译变得十分容易的背景下,源代码的混淆显得尤为重要。 ...

    Java写的一个进栈出栈的演示程序

    这个“Java写的一个进栈出栈的演示程序”旨在通过图形用户界面(GUI)来直观地展示栈的进栈(Push)和出栈(Pop)操作。下面将详细讲解栈的基本概念、Java实现以及可能包含的GUI设计。 栈是线性数据结构的一种,它...

    JAVA建立队列与堆栈

    在给定的代码示例中,创建了一个名为`Queue`的类,它扩展了Java的`Vector`类。`Vector`类提供了一组方法来管理动态数组,允许在任何位置插入和删除元素,这使得它成为实现队列的理想选择。 以下是`Queue`类中定义的...

    java代码新建文件夹

    根据给定的信息,我们可以总结出以下关于如何使用Java代码创建文件夹的相关知识点: ### Java创建文件夹的基础概念 在Java中,创建文件夹通常涉及到`java.io.File`类的使用。`File`类提供了多种方法来操作文件系统...

    react-Reactmaterialui拥有一个纯Java堆栈

    综上所述,"react-Reactmaterialui拥有一个纯Java堆栈"意味着使用React和Material-UI构建前端,同时利用Java技术和框架构建后端,形成一个全栈解决方案。这样的组合提供了前后端分离的优势,易于维护,同时也具备...

    java代码习题.zip

    这个名为"java代码习题.zip"的压缩包文件包含了多个章节的Java代码示例,很可能是某个Java编程教材或指南的配套练习资料。根据提供的文件名列表,我们可以推断这些章节可能按照学习的顺序排列,涵盖了从基础到进阶的...

    使用LinkedList模拟堆栈

    与堆栈不同,队列的处理是从头部开始的,因此使用removeFirst()移除并返回第一个元素。 ```java public Object dequeue() { if (queue.isEmpty()) { throw new NoSuchElementException("Queue is empty"); } ...

    迷宫源代码 图形化显示堆栈变化 记录堆栈的变化

    本文将深入探讨如何通过源代码实现一个图形化显示堆栈变化的迷宫程序,并结合文字解释这一过程,以便更好地理解堆栈的工作原理及其在解决实际问题中的应用。 首先,我们要知道“迷宫”问题的核心是寻找从起点到终点...

    Java实现简单堆栈代码

    总结来说,Java实现简单堆栈的代码是一个基础的、有限容量的堆栈实现,通过数组和几个关键方法实现了堆栈的基本操作。这个实现帮助我们理解堆栈数据结构的工作原理,但在实际开发中,通常会使用内置的`java.util....

Global site tag (gtag.js) - Google Analytics