栈:

  1. public class Stack<E> extends Vector<E> { // 使用数组实现栈
  2.   // 构造一个空栈
  3. public Stack() {
  4. }
  5.   // 压入栈顶部
  6. public E push(E item) {
  7. addElement(item);
  8. return item;
  9. }
  10.   // 移除栈顶的对象,并返回
  11. public synchronized E pop() {
  12. E obj;
  13. int len = size();
  14. obj = peek();
  15. removeElementAt(len - 1);
  16. return obj;
  17. }
  18.   // 查看栈顶的对象,但不从栈中移除它
  19. public synchronized E peek() {
  20. int len = size();
  21. if (len == 0)
  22. throw new EmptyStackException();
  23. return elementAt(len - 1);
  24. }
  25.   // 判断栈是否为空
  26. public boolean empty() {
  27. return size() == 0;
  28. }
  29.  //返回对象在栈中的位置,以 1 为基数。
  30. public synchronized int search(Object o) {
  31. int i = lastIndexOf(o);
  32. if (i >= 0) {
  33. return size() - i;
  34. }
  35. return -1;
  36. }
  37. }

队列接口:

FIFO (first-in-first-out)

  1. package java.util;
  2.  
  3. /**
  4. * @see java.util.Collection
  5. * @see LinkedList
  6. * @see PriorityQueue
  7. * @see java.util.concurrent.LinkedBlockingQueue
  8. * @see java.util.concurrent.BlockingQueue
  9. * @see java.util.concurrent.ArrayBlockingQueue
  10. * @see java.util.concurrent.LinkedBlockingQueue
  11. * @see java.util.concurrent.PriorityBlockingQueue
  12. * @since 1.5
  13. * @author Doug Lea
  14. * @param <E> the type of elements held in this collection
  15. */
  16. public interface Queue<E> extends Collection<E> {
  17. // 添加一个元素,如果队列已满则抛出IllegalStateException 异常
  18. boolean add(E e);
  19.   // 添加一个元素返回是否成功
  20. boolean offer(E e);
      // 移除并返回队首的元素,如果队列为空,抛出NoSuchElementException 
  21. E remove();
  22.   // 移除并返回队首元素,如果队列为空,返回null
  23. E poll();
  24.   // 返回队列头部的元素,并不移除,如果队列为空,抛出NoSuchElementException 
  25. E element();
      // 返回队列头部的元素,并不移除,如果队列为空,返回null
  26. E peek();
  27. }

LinkedBlockingQueue:待续

Java中的栈和队列的更多相关文章

  1. javascript中的栈、队列。

                           javascript中的栈.队列 栈方法     栈是一种LIFO(后进先出)的数据结构,在js中实现只需用到2个函数 push()  接受参数并将其放置 ...

  2. 浅谈Java中的栈和堆

    人们常说堆栈堆栈,堆和栈是内存中两处不一样的地方,什么样的数据存在栈,又是什么样的数据存在堆中? 这里浅谈Java中的栈和堆 首先,将结论写在前面,后面再用例子加以验证. Java的栈中存储以下类型数 ...

  3. 如何给女朋友讲明白:Java 中 Stack(栈) 与 Heap(堆)

    背景 Java 中 Stack(栈) 与 Heap(堆) 是面试中被经常问到的一个话题. 有没有对 Java 中 Stack(栈) 与 Heap(堆) 烂熟于心的童鞋,请举手!!!(怎么没人举手-) ...

  4. Java中的栈,堆,方法区和常量池

    要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是 ...

  5. Java中的5大队列,你知道几个?

    本文已收录至 https://github.com/vipstone/algorithm <算法图解>系列. 通过前面文章的学习<一文详解「队列」,手撸队列的3种方法!>我们知 ...

  6. java中的栈(利用数组实现栈)

    java中的栈(利用数组实现栈) 常见的数据结构:https://blog.csdn.net/weixin_43304253/article/details/119764275 栈的介绍 1.栈的英文 ...

  7. 2018.9.5 Java中使用栈来模拟队列

    栈的规律是是先进后出 队列的规律是先进先出 栈模拟队列 首先我们定义两个栈,一个放数据,一个出数据,判断B栈是否有元素,有元素则直接pop:没有元素则需要我们将A里面的元素出栈然后放到B里面,再取出, ...

  8. 【Java实现】栈和队列就是这么简单

    一.前言 上一篇已经讲过了链表[Java实现单向链表]了,它跟数组都是线性结构的基础,本文主要讲解线性结构的应用:栈和队列 如果写错的地方希望大家能够多多体谅并指正哦,如果有更好的理解的方式也希望能够 ...

  9. Java 堆、栈、队列(遇见再更新)

    目录 Java 栈.队列 栈 常用方法 案例 队列 Java 栈.队列 栈 常用方法 boolean empty() 测试堆栈是否为空 Object peek() 查看堆栈顶部的对象 Object p ...

随机推荐

  1. 2013 AAAI: Uncorrelated Lasso

    Si-Bao Chen, Chris Ding, Bin Luo and Ying Xie. Uncorrelated Lasso. AAAI, 2013. 第一作者是安徽大学陈思宝副教授. 第二作者 ...

  2. 关闭掉mysql 8和mysql5.7的密码验证插件validate_password

    在mysql文档中的一段话If you installed MySQL 5.7 using the MySQL Yum repository, MySQL SLES Repository, or RP ...

  3. 用Vue来实现音乐播放器(十八):右侧快速入口点击高亮

    问题一:当我们点击右侧快速入口的时候  被点击的地方高亮 首先我们要知道右侧快速入口是为什么高亮??因为当watch()监控到scrollY的变化了的时候  将scrollY的值和listHeight ...

  4. python字典小知识

    字典的小知识dic = {"name": "tom", "age": 23, "price": 110}# 01:提取键 ...

  5. python值的引用传递和go语言的值传递

    一:值传递 实参a 原本指向地址 1638212,代表1638212这个地址的值是3.在swap函数中,实参a将值拷贝给形参a,形参a此时也在内存中拥有地址,地址= xxxx,值为3,在所有的函数体内 ...

  6. 007-Spring Boot-@Enable*注解的工作原理-EnableConfigurationProperties、ImportSelector、ImportBeanDefinitionRegistrar

    一.@Enable* 启用某个特性的注解 1.EnableConfigurationProperties 回顾属性装配 application.properties中添加 tomcat.host=19 ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_7方法引用_数组的构造器引用

    先创建函数式接口 创建测试类 打印长度是10...... 方法引用优化

  8. 【ABAP系列】SAP ABAP 利用class创建客户/供应商主数据

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 利用class创建 ...

  9. 嗯,python

    总觉得在这么个地方已经没有在碰blog的可能了...但是... 突然说要用python来配置环境...好歹也是这个专业的啊...还是 看看吧... 然后 百度一搜,看到一个 好的 网站,不知道 我一旦 ...

  10. vue 点击任意地方防止冒泡

    $('.mainL').mouseup(function(e){ let objLeader = $(obj.target); // 设置目标区域 if(!objLeader.is(e.target) ...