實現個對象棧類 MyStack, 要求使用ArrayList 類實現該棧

編寫程序,實現個對象棧類 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));
 }
 }

發佈了46 篇原創文章 · 獲贊 10 · 訪問量 4913
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章