程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java的stack用法

java的stack用法

編輯:關於JAVA

Stack有時也可以稱為“後入先出”(LIFO)集合。換言之,我們在堆棧裡最後“壓入”的東西將是以後第一個“彈出”的。和其他所有Java集合一樣,我們壓入和彈出的都是“對象”,所以必須對自己彈出的東西進行“造型”。
一種很少見的做法是拒絕使用Vector作為一個Stack的基本構成元素,而是從Vector裡“繼承”一個Stack。這樣一來,它就擁有了一個Vector的所有特征及行為,另外加上一些額外的Stack行為。很難判斷出設計者到底是明確想這樣做,還是屬於一種固有的設計。
下面是一個簡單的堆棧示例,它能讀入數組的每一行,同時將其作為字串壓入堆棧。
 

//: Stacks.java
// Demonstration of Stack Class
import java.util.*;

public class Stacks {
  static String[] months = { 
    "January", "February", "March", "April",
    "May", "June", "July", "August", "September",
    "October", "November", "December" };
  public static void main(String[] args) {
    Stack stk = new Stack();
    for(int i = 0; i < months.length; i++)
      stk.push(months[i] + " ");
    System.out.println("stk = " + stk);
    // Treating a stack as a Vector:
    stk.addElement("The last line");
    System.out.println(
      "element 5 = " + stk.elementAt(5));
    System.out.println("popping elements:");
    while(!stk.empty())
      System.out.println(stk.pop());
  }
} ///:~

months數組的每一行都通過push()繼承進入堆棧,稍後用pop()從堆棧的頂部將其取出。要聲明的一點是,Vector操作亦可針對Stack對象進行。這可能是由繼承的特質決定的——Stack“屬於”一種Vector。因此,能對Vector進行的操作亦可針對Stack進行,例如elementAt()方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved