-   
- class Practicestack { 
-   
-         public static void-  main (String[]-  args ) {
 
-             Stackx newStack = new Stackx(5); 
-             newStack.push("redShirt"); 
-             newStack.push("greenShirt"); 
-             newStack.push("yellowPants"); 
-             newStack.push("purpleSocks"); 
-             newStack.push("pinkSocks"); 
-             newStack.peek(); 
-   
- //Display the Full Stack 
-             newStack.display(); 
- //Test removing a value using pop method 
-             newStack.pop(); 
-   
-             newStack.display(); 
-           } 
- } 
- class Stackx { 
-         private int maxSize; //number of items in stack 
-         private int top; // top of stack 
-   
-     public Stackx(int arraySize) { 
-         maxSize = arraySize; 
-         stackArray  = new String[- maxSize ];
-         top = -1; 
-     } 
-   
-     public void-  push (String-  a ) {    //put value on top of stack
 
-         if (top == maxSize - 1)  
-         { 
-             System- . out- . println("Stack is full");
 
-         } else { 
-   
-             top = top + 1; 
-             stackArray[top] = a; 
-         } 
-     } 
-   
-     public String-  pop () {              //take item from top of stack
 
-         if (!isEmpty()) 
-             return stackArray[top--]; // access item, decrement top 
-         else { 
-             System- . out- . println("Stack is Empty");
 
-             throw null; 
-         } 
-     } 
-   
-     public String-  peek ()               //peek at the top of the stack
 
-     { 
-         return stackArray[top]; 
-     } 
-   
-     public boolean isEmpty() {      //true if stack is empty 
-         return top == -1; 
-     } 
-   
-     public void display() { 
-   
-         for (int i = 0; i <= top; i++) { 
-             System- . out- . print(- stackArray [- i ] + " ");
 
-         } 
-     } 
- } // End class stackx 
				CmNsYXNzIFByYWN0aWNlc3RhY2sgewoKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgICAgIFN0YWNreCBuZXdTdGFjayA9IG5ldyBTdGFja3goNSk7CiAgICAgICAgICAgIG5ld1N0YWNrLnB1c2goInJlZFNoaXJ0Iik7CiAgICAgICAgICAgIG5ld1N0YWNrLnB1c2goImdyZWVuU2hpcnQiKTsKICAgICAgICAgICAgbmV3U3RhY2sucHVzaCgieWVsbG93UGFudHMiKTsKICAgICAgICAgICAgbmV3U3RhY2sucHVzaCgicHVycGxlU29ja3MiKTsKICAgICAgICAgICAgbmV3U3RhY2sucHVzaCgicGlua1NvY2tzIik7CiAgICAgICAgICAgIG5ld1N0YWNrLnBlZWsoKTsKCi8vRGlzcGxheSB0aGUgRnVsbCBTdGFjawogICAgICAgICAgICBuZXdTdGFjay5kaXNwbGF5KCk7Ci8vVGVzdCByZW1vdmluZyBhIHZhbHVlIHVzaW5nIHBvcCBtZXRob2QKICAgICAgICAgICAgbmV3U3RhY2sucG9wKCk7CgogICAgICAgICAgICBuZXdTdGFjay5kaXNwbGF5KCk7CiAgICAgICAgICB9Cn0KY2xhc3MgU3RhY2t4IHsKICAgICAgICBwcml2YXRlIGludCBtYXhTaXplOyAvL251bWJlciBvZiBpdGVtcyBpbiBzdGFjawogICAgICAgIHByaXZhdGUgU3RyaW5nW10gc3RhY2tBcnJheTsKICAgICAgICBwcml2YXRlIGludCB0b3A7IC8vIHRvcCBvZiBzdGFjawoKICAgIHB1YmxpYyBTdGFja3goaW50IGFycmF5U2l6ZSkgewogICAgICAgIG1heFNpemUgPSBhcnJheVNpemU7CiAgICAgICAgc3RhY2tBcnJheSA9IG5ldyBTdHJpbmdbbWF4U2l6ZV07CiAgICAgICAgdG9wID0gLTE7CiAgICB9CgogICAgcHVibGljIHZvaWQgcHVzaChTdHJpbmcgYSkgeyAgICAvL3B1dCB2YWx1ZSBvbiB0b3Agb2Ygc3RhY2sKICAgICAgICBpZiAodG9wID09IG1heFNpemUgLSAxKSAKICAgICAgICB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhY2sgaXMgZnVsbCIpOwogICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICB0b3AgPSB0b3AgKyAxOwogICAgICAgICAgICBzdGFja0FycmF5W3RvcF0gPSBhOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIHBvcCgpIHsgICAgICAgICAgICAgIC8vdGFrZSBpdGVtIGZyb20gdG9wIG9mIHN0YWNrCiAgICAgICAgaWYgKCFpc0VtcHR5KCkpCiAgICAgICAgICAgIHJldHVybiBzdGFja0FycmF5W3RvcC0tXTsgLy8gYWNjZXNzIGl0ZW0sIGRlY3JlbWVudCB0b3AKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFjayBpcyBFbXB0eSIpOwogICAgICAgICAgICB0aHJvdyBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIHBlZWsoKSAgICAgICAgICAgICAgIC8vcGVlayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjawogICAgewogICAgICAgIHJldHVybiBzdGFja0FycmF5W3RvcF07CiAgICB9CgogICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsgICAgICAvL3RydWUgaWYgc3RhY2sgaXMgZW1wdHkKICAgICAgICByZXR1cm4gdG9wID09IC0xOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIGRpc3BsYXkoKSB7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRvcDsgaSsrKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3RhY2tBcnJheVtpXSArICIgIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgfQp9IC8vIEVuZCBjbGFzcyBzdGFja3g=