LAB14 Write a Java program that ... 這次輕鬆一點..不寫大程式..
   讓大家緩衝一下, 改為研究 C++ STL 部份程式與 Java JCF library 部份程式 :-)
   必要時再自行寫一些小程式測試 :) :)  ==> 站在巨人肩膀上 !
Purpose: Be familiar with C++STL and Java JCF
   And learn ... how to 站在巨人肩膀上 !

Due: 2011/06/05 Sunday 23:59 星期日深夜
  
  請注意: 
   做好習題請到數位學習網站本題討論區依照規定貼文寫心得報告, 
   且標題 Subject: LAB14 站在巨人肩膀上 from 學號姓名(當然是你學號與姓名!)
   報告內容(不太醜的 HTML 檔案)是心得摘要, 注意是重點摘要, 不可以超過600字!
   另外完整報告放在另一個 99學號Lab14.htm 檔案當作夾檔案, 阿就是..
   這次夾檔要有兩個, 一個是完整報告(HTML檔案), 另一個是可以執行的 .jar 檔案,
   當然該 .jar 檔案內是含有包括該 HTML檔案以及全部相關檔案!
    (但是請不要把整個 Java 的 source code 壓縮檔幾十個 MB 都放進去!) 
   至於你的 .jar 檔案內定執行入口就選你認為最值得看的檔案!
   例如 LAB14.jar 檔案是選 MySort 這個簡單範例當作入口檔案!
       你的完整報告當然要有研習心得 、 Running Script, 
   必要時可以幾張執行過程中的畫面佐證(其實 JCF 的使用不太需要圖, 純文字也沒關係);
   請注意, 在 HTML 報告內列出的程式碼要帶有 Line numbers 方便參照解說! 
 
Description: (以下是針對 HTML 完整報告)
     注意所有需要的檔案都已經在各夾檔! 
        以下各個研究議題在必要時可以自己寫個小程式測試! 
        抓回 LAB14.jar 後請先測試  java -jar LAB14.jar  
     (1) 比較 Java 1.4 版的 Stack.java 與 Java 1.6 版的 Stack.java
         以大約 150字 +/- 80字討論之
        *請用 jar xvf src.zip java/util/Stack.java  抓出檔案(注意打正斜線喔)
         至於新版的 src.zip 可用這邊給的, 也可用你自己 JDK 目錄下的
         (本目錄下有放 JDK1.4, JDK1.5, JDK1.6 三版的 src.zip )
     (2) 研究 C++ STL 的 stack, 大略看看就可, 然後寫出該女共匪寫
         的 stack 與 Java 的 Stack 有何不同? 以大約 250字 +/- 80字討論之
     (3) 研究 JDK1.6 的 LinkedList 與 JDK1.5 的以及 JDK1.4的 LinkedList, 看看有何差別?
         同時討論 Java 的 Deque.java 與 C++ STL 的 
        (LAB14.jar解開後可看到已經幫大家解開在 java/util 子目錄與 STL_deque 子目錄內)
這是各版本 LinkedList的"頭":
JDK1.6 的 LinkedList:
   public class LinkedList<E>extends AbstractSequentialList<E>
      implements List<E>, Deque<E>, Cloneable, Serializable
JDK1.5 的 LinkedList:
   public class LinkedList<E>extends AbstractSequentialList<E>
      implements List<E>, Queue<E>, Cloneable, Serializable
JDK1.4 的 LinkedList:
   public class LinkedList  extends AbstractSequentialList
      implements List, Cloneable, Serializable
(4) 研究 C++ STL 的 vector 與 Java 的 Vector 並寫出其差別 然後以大約 150字 +/- 50字討論之 (C++ STL 的可參考我寫的簡易版 vector) (5) 研究 C++ STL 的 list 與 Java 的 List, ArrayList, LinkedList, 然後以大約 150字 +/- 50字討論之 (C++ STL 的可參考我寫的簡易版 list) (6) 用 jar xvf src.zip java/util/Arrays.java 抓出 Arrays.java 用 jar xvf src.zip java/util/Collections.java 抓出Collections.java , 然後研究Arrays 和 Collections 的 sort( ) 以及女共匪寫的 C++STL <algorithm> 的 sort( ) 與 stable_sort( ); 然後用大約 250字 +/- 80字討論之! 部份參考答案(Arrays.sort( ) 和 Collections.sort( )部份): Arrays 裡面利用 Function name overloading 的概念寫了大約 四十幾個 sort( ) 以便可以 sort 各種 array 配合不同參數, 方法是使用 merge sort, 所以是 Stable 的 sort. Collections 裡面的sort( ) 只是把參數的 container 用 toArray( ) 轉成 array of Object 後再偷叫 Arrays.sort( ) 排好, 然後再用 Iterator 把各元素依序 set 塞入 container 內! 這樣萬一是 Linked 可以不必重新建立 Link. (7) <<Extra credit>> 研究上述以外你覺得很有心得的(晚上做夢都偷笑的)寫出來分享 本子題字數最少150字, 最多不可超過 500字! 當然一定要與 C++ STL 和 Java JCF 有關的!
Hint: C++ STL 的 source code 可用 google.com 找到, 不過已經幫你找到一份從 SGI 網站抓來的 stl.zip 放此目錄! C++ 的 Reference 建議看 http://www.cplusplus.com/reference/ JDK1.6 Reference: http://download.oracle.com/javase/6/docs/api/ JDK1.5 Reference: http://download.oracle.com/javase/1.5.0/docs/api/ JDK1.4 Reference: http://download.oracle.com/javase/1.4.2/docs/api/

You are the -the visitors to this page.       到本習題的目錄       回到作業目錄             回到課程目錄