編寫程序,實現個對象棧類 MyStack, 要求使用ArrayList 類實現該棧
package Chapter_11;
import java.util.*;
public class MyStack <T>{
private ArrayList<T> arrayList;
public MyStack(){}
public boolean isEmpty() {
if(arrayList.isEmpty()) {
return true;
}else {
return false;
}
}
public int getSize() {
return arrayList == null ? 0 : arrayList.size();
}
public T peek() {
if (arrayList != null && arrayList.size() > 0){
return arrayList.get(arrayList.size() - 1);
}
return null;
}
public T pop() {
if (arrayList != null && arrayList.size() > 0) {
return arrayList.remove(arrayList.size() - 1);
}
return null;
}
public void push(T t) {
if (arrayList == null) {
arrayList = new ArrayList<>();
}
arrayList.add(t);
}
public int search(T t) {
System.out.println("需要查找的元素爲:"+t);
for (int i = 1; i <= getSize(); i++) {
if ((T)arrayList.get(arrayList.size()-i)==t){
return i-1
;
}
}
return -1;
}
public void Print() {
for(T m:arrayList) {
System.out.println("當前棧的元素爲:"+m);
}
}
public static void main(String[] args) {
MyStack<Integer> myStack=new MyStack<Integer>();
myStack.push(1);
myStack.push(2);
myStack.push(3);
myStack.push(4);
myStack.push(5);
Integer t=2;
System.out.println("棧是否爲空:"+myStack.isEmpty());
System.out.println("棧的長度:"+myStack.getSize());
System.out.println("返回的棧頂元素:"+myStack.peek());
myStack.Print();
System.out.println("彈出的棧頂元素"+myStack.pop());
myStack.Print();
System.out.println("所查找元素距離棧頂元素位置:"+myStack.search(t));
}
}