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:待续
Java中的栈和队列的更多相关文章
- javascript中的栈、队列。
		javascript中的栈.队列 栈方法 栈是一种LIFO(后进先出)的数据结构,在js中实现只需用到2个函数 push() 接受参数并将其放置 ... 
- 浅谈Java中的栈和堆
		人们常说堆栈堆栈,堆和栈是内存中两处不一样的地方,什么样的数据存在栈,又是什么样的数据存在堆中? 这里浅谈Java中的栈和堆 首先,将结论写在前面,后面再用例子加以验证. Java的栈中存储以下类型数 ... 
- 如何给女朋友讲明白:Java 中 Stack(栈) 与 Heap(堆)
		背景 Java 中 Stack(栈) 与 Heap(堆) 是面试中被经常问到的一个话题. 有没有对 Java 中 Stack(栈) 与 Heap(堆) 烂熟于心的童鞋,请举手!!!(怎么没人举手-) ... 
- Java中的栈,堆,方法区和常量池
		要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是 ... 
- Java中的5大队列,你知道几个?
		本文已收录至 https://github.com/vipstone/algorithm <算法图解>系列. 通过前面文章的学习<一文详解「队列」,手撸队列的3种方法!>我们知 ... 
- java中的栈(利用数组实现栈)
		java中的栈(利用数组实现栈) 常见的数据结构:https://blog.csdn.net/weixin_43304253/article/details/119764275 栈的介绍 1.栈的英文 ... 
- 2018.9.5  Java中使用栈来模拟队列
		栈的规律是是先进后出 队列的规律是先进先出 栈模拟队列 首先我们定义两个栈,一个放数据,一个出数据,判断B栈是否有元素,有元素则直接pop:没有元素则需要我们将A里面的元素出栈然后放到B里面,再取出, ... 
- 【Java实现】栈和队列就是这么简单
		一.前言 上一篇已经讲过了链表[Java实现单向链表]了,它跟数组都是线性结构的基础,本文主要讲解线性结构的应用:栈和队列 如果写错的地方希望大家能够多多体谅并指正哦,如果有更好的理解的方式也希望能够 ... 
- Java 堆、栈、队列(遇见再更新)
		目录 Java 栈.队列 栈 常用方法 案例 队列 Java 栈.队列 栈 常用方法 boolean empty() 测试堆栈是否为空 Object peek() 查看堆栈顶部的对象 Object p ... 
随机推荐
- list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
			/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ... 
- 安装U盘启动ferdora-22-fce笔记
			如何格式化为fat? windows图形界面格式化, 选项中没有fat, 只有fat32和exfat两种upan格式 Fat就是 传统的FAT16 要格式化为fat, 需要使用cmd的format命令 ... 
- SpringBoot系列:一、SpringBoot搭建
			打开IDEA,新建一个spring工程,然后无脑下一步就行. 新建完成后的目录结构 java文件夹下是java源码 resources下是配置文件 test下是测试文件 添加web模块支持,在pom. ... 
- Win32InputBox,C接口的,实现类似VB的InputBox的功能
			#ifndef __03022006__WIN32INPUTBOX__ #define __03022006__WIN32INPUTBOX__ /* This library is (c) Elias ... 
- memset, fill 对bool,int 赋值的效率
			memset对bool型变量赋false比对int型变量赋0快了10倍 fill对bool型变量赋false和对int型变量赋0效率一样 fill对int型变量赋0比memset对int型变量赋0慢了 ... 
- UVa 12169 Disgruntled Judge 紫书
			思路还是按照紫书,枚举a,得出b, 然后验证. 代码参考了LRJ的. #include <cstdio> #include <iostream> using namespace ... 
- 解决jQuery的toggle()的自动触发问题
			在1.9以后的版本toggle()就存在这个问题,用之前的版本就正常了 解决办法: 1.去 jquery官网下载一个版本升级文件.http://blog.jquery.com/2013/05/08/j ... 
- python+selenium元素定位——8种方法
			定位元素,selenium提供了8中元素定位方法: (1)find_element_by_id() :html规定,id在html中必须是唯一的,有点类似于身份证号 (2)find_element_b ... 
- C语言如何操作内存
			1.用变量名来访问内存(c语言对内存地址的封装.数据类型.函数名)--直接访问内存(使用地址) 如 int a; 编译器将申请32bit的内存(4个内存单元),同时将内存地址和变量名a绑定,操作a时, ... 
- 尝试Vue3.0
			Composition API 纯函数式 <!DOCTYPE html> <html lang="en"> <head> <meta ch ... 
