1. 程式人生 > >20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結

20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結

art 顯示 定義 .cn .com 引用 返回 一周 表示

20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結

教材學習內容總結

第六章 列表

列表集合


1.鏈表和列表對比:鏈表是一種實現策略,使用引用來在對象之間創建鏈接。列表集合是一種概念性表示法,列表可以由鏈表和數組來實現。

2.棧和隊列都是線性結構,其元素只能在末端添加和刪除。列表集合更一般化,可以在列表的中間和末端添加和刪除元素。

3.列表集合分為3種類型:
有序列表(ordered list):其元素按照元素的某種內在特性進行排序。
無序列表(unordered list):其元素間不具有內在順序,元素按照它們在列表中的位置進行排序。
索引列表(indexed list):其元素可以用數字索引來引用。

Java API 中的列表


1.Java集合API中提供的列表主要是支持索引列表。

2.Java API沒有任何類能直接實現以上描述的有序列表。

3.Arraylist和Linkedlist都實現了java.util.List接口。

方法 描述
add(E element) 往列表的末端添加一個元素
add(int index,E element) 往指定索引處插入一個元素
get(int index) 返回指定索引處的元素
remove(int index) 刪除指定索引處的元素
remove(E Object) 刪除指定對象的第一個出現
set(int index,E element) 替代指定索引處的元素
size() 返回列表中的元素數量

列表ADT


1.很多常見操作可以為所有類型的列表定義,這些操作之間的差別在於如何添加元素。

2.

操作 描述
removeFirst 在列表中刪除第一個元素
removeLast 在列表中刪除最後一個元素
remove 在列表中刪除某個元素
first 查看位於列表前端的元素
last 查看位於列表末端的元素
contains 確定列表是否含有某個元素
isEmpty 確定列表是否為空
size 確定列表中的元素數量


3.有序列表在添加元素時,只需要用add,位置取決於其鍵值。無序列表add操作有三種變體:addToFront(元素添加到列表前端)addToRear(元素添加到列表末端)addAfter(把元素添加到某個已知元素後邊)

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

  • 問題1:

代碼調試中的問題和解決過程

  • 問題1:在實現ArrayOrderedListTest測試時,我遇到了顯示最後一個數字時,人家顯示為null這個問題。
    圖片
  • 解決分析,在我對前面ArrayList類檢查時,發現我在顯示last時,將rear-1不小心寫成rear了,所以它所讀取的是最後一個後邊的,所以肯定為空。

代碼托管

結對及互評

正確使用Markdown語法(加1分)
模板中的要素齊全(加1分)
教材學習中的問題和解決過程, (加3分)
代碼調試中的問題和解決過程, 無問題
感想,體會真切的(加1分)
點評認真,能指出博客和代碼中的問題的(加1分)

  • 20172317
    基於評分標準,我給以上博客打分:4分。得分情況如下:
  • 20172320
    基於評分標準,我給以上博客打分:8分。得分情況如下:

    • 結對學習內容
      • 教材第6章
      • 完成課後自測題,並參考答案學習
      • 完成課後練習題
      • 完成程序設計項目:至少完成PP6.8、PP6.11、PP6.17

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

這周學的有點麻煩,棧還行,就是鏈表有點糊塗。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 0/0 1/1 8/8
第二周 1306/1306 1/2 20/28
第三周 1291/2597 1/3 18/46
第四周 4361/6958 2/3 20/66

參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法

  • 計劃學習時間:10小時

  • 實際學習時間:8小時

  • 改進情況:

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

參考資料

  • 《Java程序設計與數據結構教程(第二版)》

  • 《Java程序設計與數據結構教程(第二版)》學習指導
  • Java對象和引用變量
  • 為什麽Java不支持多重繼承

20172327 2018-2019-1 《程序設計與數據結構》第四周學習總結