package stack2;

public interface StackADT {

/**

* 添加元素

* @param object

*/

void push(Object object);

/**

* 弹出元素

* @return

*/

Object pop() ;

/**

* 访问栈顶元素

* @return

*/

Object peek();

/**

* 是否为空

* @return

*/

boolean isEmpty();

/**

* 大小

* @return

*/

int size();

}

package stack2; import java.util.Arrays; /**  * 数组模拟栈  * @author cs  *  */ public class ArrayStack implements StackADT{     private int top;                  //当前位置     private Object [] stack;          //数组栈     private int DEFAULT_SIZE = 10;   //默认大小          public ArrayStack() {         this.top = 0;         stack = new Object [DEFAULT_SIZE];     }          @Override     public void push(Object object) {         if(size() == stack.length) {             expandCapaCity();         }         stack[top] = object;         top ++;              }          /**      * 扩展长度      */     public void expandCapaCity() {         stack = Arrays.copyOf(stack, stack.length * 2);     }     @Override     public Object pop() {         // TODO Auto-generated method stub         if(isEmpty()) {             return null;         }         top --;         Object result = stack[top];         stack[top] = null;         return result;     }     @Override     public Object peek() {         // TODO Auto-generated method stub         if(isEmpty()) {             return null;         }         return stack[top - 1];     }     @Override     public boolean isEmpty() {         // TODO Auto-generated method stub         return top == 0;     }     @Override     public int size() {         // TODO Auto-generated method stub         return stack.length;     }      }

java 模拟栈底层用数组_java用数组模拟栈相关推荐

  1. java 数组对象属性数组_Java中数组的特性

    数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间.在C,C++等语言中,数组的定义简洁清晰,而在java中确有一些会让人迷惑的特性. ...

  2. java指针的数组_java 指针 数组的使用

    package com.tarena.day05; import java.util.Arrays; public class Point { /** *java 指针演示 */ static fin ...

  3. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  4. java封装数组_Java封装数组之动态数组实现方法详解

    本文实例讲述了Java封装数组之动态数组实现方法.分享给大家供大家参考,具体如下: 前言:在此之前,我们封装的数组属于静态数组,也即数组空间固定长度,对于固定长度的数组当元素超过容量时会报数组空间不足 ...

  5. java字符串转字符串数组_Java字符串数组

    java字符串转字符串数组 Java String array is used to hold fixed number of Strings. String array is very common ...

  6. java初始化含十个数的数组_java初始化数组的方法

    java初始化数组的方法 发布时间:2020-06-28 09:55:26 来源:亿速云 阅读:87 作者:Leah 本篇文章为大家展示了java初始化数组的方法,代码简明扼要并且容易理解,绝对能使你 ...

  7. java 初始化数组_Java中数组的初始化

    一.什么是初始化 在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用 ...

  8. java 定义整数数组_JAVA中数组的正确定义方法是什么?

    数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. §5.1一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任 ...

  9. java new数组_Java创建数组的几种方式

    1.一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不 ...

  10. java定义数组_java定义数组的方法有哪些

    java定义数组的方法有:1.[数组类型[] 数组名 = new 数组类型[数组长度]]:2.[数组类型[] 数组名 = {数组元素}]:3.[数组类型[] 数组名 = new 数组类型[] {数组元 ...

最新文章

  1. 中序遍历的非递归算法
  2. 2.1算法分析 递归---阶乘
  3. MySql—锁机制原理
  4. 解决: Linux – git: command not found
  5. flutter天气_牛笔!自己用Flutter撸一个天气APP
  6. 南孚电池:如何从0-1建立经营分析报表平台,助力集团转型?
  7. Spring Boot系列教程四:配置文件详解properties
  8. Windows Azure Marketplace 为新增的 50 个国家/地区提供,并推出了令人振奋的新增内容,包括我们自己的 Bing 光学字符识别服务...
  9. 派生类构造的时候一定要调用_分手的时候,一定要好好说再见
  10. 如何清空Python的List
  11. 一款极致的文件对比工具——Beyond Compare,适用于Windows、macOS和Linux的文件和文件夹比较
  12. 你们要的网络电话软件测评来了
  13. Hadoop 与 HBase 版本对应
  14. 联想台式计算机 不启动u盘,联想电脑不能u盘启动怎么办
  15. 东南亚跨境电商shopee平台,教你轻松打造高销量品牌店铺!
  16. 【Alpha版本】冲刺阶段——Day 1
  17. 爱的无常、当下、柔软
  18. TREG(Transformed Regression for Accurate Tracking)
  19. flex 4 dropdownlist skin自定义 1
  20. 华为手机怎么用云歌_华为手机语音助手怎么使用 看完你就知道了

热门文章

  1. kubelet配置cni插件_不到1分钟,从零完成k3s Kubeconfig配置
  2. java解析xml 字符串_Java解析XML字符串
  3. java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
  4. 2018.09.28 hdu5434 Peace small elephant(状压dp+矩阵快速幂)
  5. 翻译文章第六章8-11
  6. 老罗Android开发视频教程( android解析json数据 )4集集合
  7. 构建高性能ASP.NET站点 开篇
  8. 百度AI快车道深圳实战班启动,用极致技术打造实用产品
  9. ECCV 2020 | 超快的车道线检测
  10. 动态卷积:自适应调整卷积参数,显著提升模型表达能力 CVPR 2020