Java实现栈

package algorithm;

import java.util.Arrays;
import java.util.Iterator;

/**

  • @author Administrator
  • @date 2022-09-12 16:38
  • 数组栈
    /
    public class MyArrayStack implements Iterable {
    // 定义一个数组
    private Object[] elementData;
    // 顶部的索引
    private int topIndex;
    // 构造方法确定栈的长度
    public MyArrayStack(int size) {
    this.elementData = new Object[size];
    } /
    *
  • 定义迭代器
  • @return
    */
    @Override
    public Iterator iterator() {
    return new MyArrayStackIter();
    }
    class MyArrayStackIter implements Iterator{
    @Override
    public boolean hasNext() {
    return topIndex != elementData.length;
    }
    @Override
    public E next() {
    return pop();
    }
    @Override
    public void remove() {
    pop();
    }
    }
    public boolean push(E element){
    // 判断扩容两倍
    if(topIndex >= elementData.length){
    elementData = Arrays.copyOf(elementData,elementData.length << 1);
    }
    elementData[topIndex++] = element;
    return true;
    }
    // 删除并出栈 是否删除就看topIndex本身的大小是否改变
    public E pop(){
    if(topIndex

好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/16690493.html

关于笔者:我的主页

欢迎来我的51CTO主页踩一踩~ 我的51CTO博客

Java实现栈

Original: https://www.cnblogs.com/rainbow-1/p/16690493.html
Author: 靠谱杨
Title: Java实现栈

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615955/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mybatis 如何在IDEA中添加配置模板

    Mybatis 如何在IDEA中添加配置模板 第一步:点击File -> setting ->找到Editor点击->找到File and Code Templa…

    Java 2023年6月7日
    076
  • Golang1.18.1在Windows10环境安装

    一、下载Golang源码包 1.Go官网下载地址为 https://golang.org/dl/,因难以下载,推荐去Go官方镜像站下载:https://google.golang….

    Java 2023年6月13日
    068
  • git 版本控制命令笔记

    git 获取与创建项目 你得先有一个git仓库,才能用它进行操作。仓库是Git存放你要保存的快照的地方。 创建仓库的两种方式: init 通过命令行初始化。 clone 如果我们想…

    Java 2023年6月8日
    073
  • MyBatis-Plus使用SQL语句

    项目中碰到一个必须要使用动态SQL的地方, 想着在xml文件中进行一层一层的判断太麻烦了,也不好理解,要是能在Java代码中组织好SQL,进行查询操作 QueryWrapper&l…

    Java 2023年6月15日
    067
  • MySQL性能优化的5个维度

    面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。既然是优化查询,我们自然要先知道查询操作要经过哪些环节,然后…

    Java 2023年6月7日
    062
  • crm遇错记录

    bug thymeleaf 共享域对象 如果需要将对象的数据显示到前台页面我们可以通过使用thymeleaf实现这一点,Thymeleaf是一个动态渲染页面用的,他简单易懂,不像j…

    Java 2023年6月8日
    059
  • SQLServer2019安装教程图文详解

    可以去官网下载,我百度网盘也有都一样 链接: https://pan.baidu.com/s/1fhEJu_9Zas364bvlEimRLA 提取码: wnqq 链接: https…

    Java 2023年6月5日
    0118
  • RabbitMQ

    异步处理 应用解耦 流量控制、削峰 1)消息中间件有两个重要的概念:消息代理和目的地 当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地 2)消息队列主要有…

    Java 2023年5月30日
    093
  • JDK下载、安装与环境配置

    一、JDK下载与安装 1.1、下载JDK安装包 博主在这里给大家准备了一个64位操作系统的jdk1.8以便大家下载(使用的是迅雷)点击此处下载提取码:dfbt 如果其他小伙伴的电脑…

    Java 2023年6月5日
    069
  • 设计模式 《head first 设计模式》

    策略设计模式:strategy pattern 定义了算法族,分别封装起来,让他们之间可以互相替换。 此模式让算法的变化独立于算法的客户类 客户类,以 接口定义的 实例变量作其域,…

    Java 2023年6月9日
    0175
  • 多线程

    多线程使用Callable实现多线程 多线程第三种创建方式 定义一个任务类,实现Callable接口,结合FutureTask完成 交给Thread处理,重写call方法 目标:学…

    Java 2023年6月6日
    063
  • 隐私计算FATE-核心概念与单机部署

    一、说明 Fate 是一个工业级联邦学习框架,所谓联邦学习指的就是可以联合多方的数据,共同构建一个模型; 与传统数据使用方式相比,它不需要聚合各方数据搭建 数据仓库,联邦学习在联合…

    Java 2023年6月6日
    084
  • 解决问题 Could not obtain transaction-synchronized Session for current thread

    解决问题 Could not obtain transaction-synchronized Session for current thread 问题现象 在使用Hibernat…

    Java 2023年5月30日
    076
  • list对象中的数据如何去重呢?

    下文笔者讲述list对象的去重方法分享,list的实现类是我们存储数据的容器, 当里面存储的对象存在重复值时,我们该如何对其进行去重操作呢? 下文笔者将一一道来,首先我们需了解对象…

    Java 2023年6月15日
    093
  • MySQL三大日志、 MVCC、锁、分库分表、主从复制、优化

    MySQL三大日志(binlog、redolog、undolog) 1、redo log(重做日志)物理日志 (1)InnoDB存储引擎独有的,使MySQL崩溃后能恢复数据,保证数…

    Java 2023年6月5日
    060
  • 设计模式–Proxy模式

    这篇主要介绍 &#x4EE3;&#x7406;&#x6A21;&#x5F0F;相关内容,主要是一些基本概念普及。 代理模式 1、什么是代理模式? &…

    Java 2023年6月5日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球