java入门 -- 模拟栈

/*

内存泄漏:

使用数组模拟堆栈的存储方式:

1. 堆栈的存储特点:先进后出,后进先出

注意:

1.如果对象不再使用,不要让变量指向该对象,要让该对象尽快被垃圾回收期回收。

*/

package com.jin.michael;

import java.util.Arrays;

class StackList{

Object[] elements;

int index = 0; //当前索引值

public StackList(){

this.elements = new Object[3];

}

//添加内容方法

public void add(Object o){

//添加元素之前,首先检查容量是否够用

ensureCapcity();

elements[index++] = o;

}

//出栈

public Object pop(){

int tempIndex = --index;

Object o = elements[tempIndex];

elements[tempIndex] = null;

return o;

}

//检查当前数组是否够用

public void ensureCapcity(){

if(index==elements.length){

//新建一个长度

int newLength = elements.length*2;

elements=Arrays.copyOf(elements, newLength);

}

}

//获取当前元素个数

public int size(){

return index;

}

}

public class Demo03 {

public static void main(String[] args){

StackList list = new StackList();

list.add("x");

list.add("b");

list.add("c");

list.add("d");

//输出元素个数

System.out.println(list.size());

//弹出元素

int size = list.size();

for(int i=0; i

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • ``` /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject ...
    非专业码农阅读 353评论 0 0
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,294评论 0 16
  • 大学生活很容易,看一场电影,讨论最新的游戏,一个学期不见踪迹,偶尔拼命努力,熬夜证明自己有不挂科的实力,最后收获碌...
    陈九er阅读 356评论 2 1