public class FancyArrayStack extends ArrayStack implements FancyCollection { //Constructors public FancyArrayStack() { super(); } public FancyArrayStack(int n) { super
; } public FancyArrayStack(Object[] data) { super(data); } public FancyArrayStack(FancyCollection arg) { this(arg.toArray()); } //Methods - inherited from class ArrayStack //FancyCollection methods implementation public int size() { return top+1; } public void clear() { top = -1; } public boolean contains(Object arg) { for(int i = 0; i <= top; i++) if(this.items[i].equals(arg)) return true; return false; } public Object[] toArray() { Object[] result = new Object[top + 1]; for(int i = 0; i <= top; i++) result[i] = items[i]; return result; } public Object clone() { return new FancyArrayStack(this); } //Override methods - inherited from class Object public boolean equals(Object arg) { FancyArrayStack s = (FancyArrayStack)arg; if(this.size() != s.size()) return false; //Proverka dali masivite this.items i s.items savpadat for(int i = 0; i <= top; i++) if(!this.items[i].equals(s.items[i])) return false; return true; } public String toString() { //Polu4avane na niz ot elementite na masiva items String result = ""; for(int i= 0; i <= top ; i++) result = items[i] + "\n" + result; return result; } }