學號 20175212童皓楨 《Java程序設計》第8周學習總結

學號 20175212童皓楨 《Java程序設計》第8周學習總結

教材學習內容總結

泛型

class People<E>html

其中People是泛型類的名稱,E是其中的泛型,也就是說咱們並無指定E是何種類型的數據,它能夠是任何對象或接口,但不能是基本類型數據。java

泛型類聲明和建立對象時,類名後多了一對「<>」,並且必需要用具體的類型替換「<>」中的泛型。例如:git

Cone<Circle> coneOne;算法

coneOne =new Cone<Circle>(new Circle());數據結構

鏈表

1.LinkedList<E>泛型類建立的對象以鏈表結構存儲數據,習慣上稱LinkedList類建立的對象爲鏈表對象。例如,學習

LinkedList<String> mylist=new LinkedList<String>();

2.建立一個空雙鏈表。設計

add(E obj) 向鏈表依次增長節點調試

3.遍歷鏈表code

當用戶須要遍歷集合中的對象時,應當使用該集合提供的迭代器,而不是讓集合自己來遍歷其中的對象。因爲迭代器遍歷集合的方法在找到集合中的一個對象的同時,也獲得待遍歷的後繼對象的引用,所以迭代器能夠快速地遍歷集合。htm

鏈表對象可使用iterator()方法獲取一個Iterator對象,該對象就是針對當前鏈表的迭代器。

4.排序與查找

public static sort(List<E> list) 該方法能夠將list中的元素升序排列。

int binarySearch(List<T> list, T key,CompareTo<T> c) 使用折半法查找list是否含有和參數key相等的元素,若是key鏈表中某個元素相等,方法返回和key相等的元素在鏈表中的索引位置

5.洗牌與旋轉

Collections類還提供了將鏈表中的數據從新隨機排列的類方法以及旋轉鏈表中數據的類方法。

public static void shuffle(List<E> list) 將list中的數據按洗牌算法從新隨機排列。

static void rotate(List<E> list, int distance) 旋轉鏈表中的數據。

public static void reverse(List<E> list) 翻轉list中的數據。

堆棧

堆棧是一種「後進先出」的數據結構,只能在一端進行輸入或輸出數據的操做。

Stack<E>泛型類建立一個堆棧對象,堆棧對象經常使用方法:

public E push(E item);實現壓棧操做

public E pop();實現彈棧操做。

public boolean empty();判斷堆棧是否還有數據。

public E peek();獲取堆棧頂端的數據,但不刪除該數據。

public int search(Object data);獲取數據在堆棧中的位置。

散列映射

HashMap<K,V>對象採用散列表這種數據結構存儲數據,習慣上稱HashMap<K,V>對象爲散列映射。

例如:
HashMap<String,Student> hashtable= HashSet<String,Student>();

hashtable能夠存儲「鍵/值」對數據。

樹集

TreeSet<E>類建立的對象稱做樹集。

例如TreeSet<String> mytree=new TreeSe<String>;

而後使用add方法爲樹集添加節點,例如mytree.add("boy");

樹集用add方法添加節點,節點會按其存放的數據的「大小」順序一層一層地依次排列,在同一層中的節點從左到右按「大小」順序遞增排列,下一層的都比上一層的小

教材學習中的問題和解決過程

教材中代碼調試有問題先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是別人沒有提出相同問題,能夠編輯文檔添加,而後把本身提出的問題複製到下面:

  • 問題1:教材P458例9中,
for(int k=0;k<student.length;k++)
treemap.put(key[k],student[k]);

put方法不瞭解,不清楚此段的做用。

  • 問題1解決方案:查找API
    輸入圖片說明

意爲將關鍵字與值聯繫起來

代碼託管

(statistics.sh腳本的運行結果截圖)

上週考試錯題總結

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分):
    • 不使用Markdown不加分
    • 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  2. 模板中的要素齊全(加1分)
    • 缺乏「教材學習中的問題和解決過程」的不加分
    • 缺乏「代碼調試中的問題和解決過程」的不加分
    • 代碼託管不能打開的不加分
    • 缺乏「結對及互評」的不能打開的不加分
    • 缺乏「上週考試錯題總結」的不能加分
    • 缺乏「進度條」的不能加分
    • 缺乏「參考資料」的不能加分
  3. 教材學習中的問題和解決過程, 一個問題加1分

  4. 代碼調試中的問題和解決過程, 一個問題加1分

  5. 本週有效代碼超過300分行的(加2分)
    • 一週提交次數少於20次的不加分
  6. 其餘加分:
    • 週五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進狀況的加1分
    • 有動手寫新代碼的加1分
    • 課後選擇題有驗證的加1分
    • 代碼Commit Message規範的加1分
    • 錯題學習深刻的加1分
    • 點評認真,能指出博客和代碼中的問題的加1分
    • 結對學習狀況真實可信的加1分
  7. 扣分:
    • 有抄襲的扣至0分
    • 代碼做弊的扣至0分
    • 遲交做業的扣至0分

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx

  • 參考示例

點評過的同窗博客和代碼

其餘(感悟、思考等,可選)

xxx
xxx

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 6/6 1/1 20/20
第二週 245/251 1/2 18/38
第三週 633/884 1/3 22/60
第四周 305/1189 1/4 30/90
第五週 410/1599 3/7 30/120
第六週 1135/2734 3/10 30/150
第七週 781/3515 3/13 30/180
第八週 710/4225 3/16 30/210

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法

  • 計劃學習時間:XX小時

  • 實際學習時間:XX小時

  • 改進狀況:

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表
)

參考資料

相關文章
相關標籤/搜索