zoukankan      html  css  js  c++  java
  • Java中的栈和队列

    栈:

    public class Stack<E> extends Vector<E> { // 使用数组实现栈
      // 构造一个空栈
        public Stack() {
        }
      // 压入栈顶部
        public E push(E item) {
            addElement(item);
            return item;
        }
      // 移除栈顶的对象,并返回
        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;
        }
    }

    队列接口:

    FIFO (first-in-first-out)

    package java.util;
    
    /**
     * @see java.util.Collection
     * @see LinkedList
     * @see PriorityQueue
     * @see java.util.concurrent.LinkedBlockingQueue
     * @see java.util.concurrent.BlockingQueue
     * @see java.util.concurrent.ArrayBlockingQueue
     * @see java.util.concurrent.LinkedBlockingQueue
     * @see java.util.concurrent.PriorityBlockingQueue
     * @since 1.5
     * @author Doug Lea
     * @param <E> the type of elements held in this collection
     */
    public interface Queue<E> extends Collection<E> {
       // 添加一个元素,如果队列已满则抛出IllegalStateException 异常
        boolean add(E e);
      // 添加一个元素返回是否成功
        boolean offer(E e);
      // 移除并返回队首的元素,如果队列为空,抛出NoSuchElementException  E remove();   // 移除并返回队首元素,如果队列为空,返回null E poll();   // 返回队列头部的元素,并不移除,如果队列为空,抛出NoSuchElementException  E element();
      // 返回队列头部的元素,并不移除,如果队列为空,返回null E peek(); }

    LinkedBlockingQueue:待续

  • 相关阅读:
    Linux dd 命令
    excel合并单元格数据读取
    判断字符串是否以中文字符开头
    列表嵌套字典去重统计
    【转载】【DBDK】dpdk大页内存原理
    【LinuxShell】ps 命令浅析
    【LinuxShell】free 命令详解
    【网络安全】IOC概念浅析
    【转载】【网络安全】渗透中 PoC、Exp、Payload 与 Shellcode 的区别
    【SVN】windows 下的SVN常见问题及其解决方法
  • 原文地址:https://www.cnblogs.com/yangyongjie/p/11154100.html
Copyright © 2011-2022 走看看