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.
到本習題的目錄
回到作業目錄
回到課程目錄