熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

Java中的Stack

2013-11-15 11:45:57  來源: JSP教程 

  Stack有時也可以稱為後入先出(LIFO)集合換言之我們在堆棧裡最後壓入的東西將是以後第一個彈出和其他所有Java集合一樣我們壓入和彈出的都是對象所以必須對自己彈出的東西進行造型
  一種很少見的做法是拒絕使用Vector作為一個Stack的基本構成元素而是從Vector裡繼承一個Stack這樣一來它就擁有了一個Vector的所有特征及行為另外加上一些額外的Stack行為很難判斷出設計者到底是明確想這樣做還是屬於一種固有的設計
  下面是一個簡單的堆棧示例它能讀入數組的每一行同時將其作為字串壓入堆棧
  
  //: Stacksjava
  // Demonstration of Stack Class
  import javautil*;
  
  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 = ; 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()從堆棧的頂部將其取出。tw.WiNgwIT.COm要聲明的一點是,Vector操作亦可針對Stack對象進行。這可能是由繼承的特質決定的——Stack“屬於”一種Vector。因此,能對Vector進行的操作亦可針對Stack進行,例如elementAt()方法。
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19582.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.