This is my array implementation on stack in Java. It involves push, pop, get and growth when limit of array size is reached.
I am a self-taught programmer starting to learn data structures and algorithms.
I am looking for
- any recommendation on conventions
- an honest opinion on how bad this piece of code if this is an interview.
- anything wrong and room for improvement.
I wrote this code myself, not looking at any other similar questions on Code Review.
public class stackAlist{ int[] data; int size; static int growthmultipler = 1; public stackAlist(){ data = new int[2*growthmultipler]; size = 0; } public void push(int value){ if(this.size == 0){ this.data[0] = value; this.size += 1; this.growthmultipler = 1; } else if(this.size == 2*growthmultipler){ growthmultipler += 1; stackAlist newlist = new stackAlist(); newlist.data = new int[2*growthmultipler]; System.arraycopy(this.data, 0, newlist.data, 0, this.size); this.data = newlist.data; this.data[size] = value; this.size += 1; } else{ this.data[size] = value; this.size += 1; } } public void pop(){ this.data[size-1] = 0; this.size = this.size-1; } public void get(){ int i; for(i =0; i < this.size; i++){ System.out.println(data[i]); } } public static void main(String[] args){ stackAlist a = new stackAlist(); a.push(1); a.push(2); a.get(); a.pop(); a.get(); a.push(3); a.push(4); a.get(); } }