特别简单的写了一下。
package ByteDance;
import java.util.EmptyStackException;
class Stack1 { //假设都是数字的插入
private int[] nums = new int[2];
private int size = 0; //记录当前数组中利用的大小
public void push(int num) {
if(size == nums.length){
resize();//对数组进行扩容
}
nums[size] = num;
size++;
}
public int poll() {
if(size < 0){
throw new EmptyStackException();
}
int result = nums[size-1];
size--;
return result;
}
public boolean isEmpty(){
return size==0;
}
public void printNums(){
for(int i=0;i<=size;i++) {
System.out.print(nums[i] + " ");
}
}
//扩容
public void resize(){
int length = 2*nums.length;
int[] newnums = new int[length];
for(int i=0;i<nums.length;i++) {
newnums[i] = nums[i];
}
nums = newnums;
}
}
public class StackDemo {
public static void main(String[] args) {
Stack1 stack1 = new Stack1();
stack1.push(2);
stack1.push(3);
stack1.push(4);
stack1.printNums();
System.out.println();
System.out.println(stack1.poll());
}
}