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

你可能感兴趣的:(java入门 -- 模拟栈)