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

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

教材學習內容總結

列表

  • 列表集合有如下3種類型:
    • 有序列表(orderedlist),其元素按照元素的某種內在特性進行排序。有序列表中的元素具備內在關聯,這種關聯定義了元素之間的順序。
      html

    • 無序列表(unorderedlist),其元素間不具備內在順序,元素按照它們在列表中的位
      置進行排序。無序列表中的元素按使用者所選擇的任意方式排序·
      node

    • 索引列表(indexedlist),其元素能夠用數字索引來引用。索引列表爲它的元素維護一段連續的數字索引值·
      git

  • 使用數組實現列表
    • 爲了不要移動元素。可使用環形數組方法,但當從列
      表中間插入或刪除元素時,仍須要移動元素。
    • remove操做要求咱們查找仵爲參數傳遞的元素,若是找到就從列表中將其刪除。而後,
      數組中更高索引的元素向下平移以填補空隙。數組

    • contains操做的做用是判斷指定元素是否包含在列表當中。數據結構

    • add操做是將一個元素添加到有序表中的惟一方式。調用中沒有指定添加到的位置,
      由於元素自己就決定了它們的次序。與remove操做很是像,add操做也須要比較和平移操
      做:進行比較以找到元素在列表中的正確位置,而後平移元素以便爲新元素騰出一個位置。ide

    • 只有Comparable對才能存儲在有序列表中。學習

  • 使用鏈表實現列表
    • remove操做是LinkedList類的一部分,爲無序列表和有序列表所共有。remove操做包
      括,確認列表非空,查找要刪除的元素,而後處理如下4種狀況之一:要刪除的元素是列
      表中的惟一元素,要刪除的元素是列表中的濘元素,要刪除的元素是列表中末尾元素,或
      者要刪除的元素處於列表當中位置。在全部這些狀況下,count都將遞減1。與數組實現的
      remove操做不一樣,鏈表實現的remove操做不須要平移元素來填補空隙。

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

  • 問題1:modcount是什麼
  • 問題1解決方案:看了下第七章,課本的解釋是:modCount是一個整數變量,在外部類ArrayList中定義的。若是回顧一下第6章,就會明白,一旦集合被修改(好比往集合中添加了元素),modCount就會增長。所以,當創一個新迭代器時,其修改計數就設置爲等於集合本身的計數。若是兩個值不一致了(因爲集合進行了更新),那麼迭代器將拋出ConcurrentModificationException異常。

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

  • 問題1:代碼報錯,可是從頭翻到尾沒看見錯誤
  • 問題1解決方案:使用f2查找了一下,發現是註釋報錯了,在網上查了一下,貌似idea會出現這個錯誤,重啓了一下就沒了

上週考試錯題總結

  • 錯題1及緣由,理解狀況
    A pop operation on a Stack returns a(n)
    A .node
    B .element
    C .variable
    D .pointer

選B,返回一個元素idea

  • 錯題2及緣由,理解狀況
    Which of the following is the correct way to instantiate an array of 10 generic objects?
    A .Which of the following is the correct way to instantiate an array of 10 generic objects?
    B .T[10] x = new T[]
    C .T[] x = (T[])(new object[10])
    D .None of the above

選C,泛型數組的聲明方式有點不一樣.net

  • 錯題3及緣由,理解狀況
    The variable top in the array implementation of a Stack refers to
    A .The next available position in the array
    B .The item at the top of the Stack
    C .The number of items in the stack
    D .A and C
    E .None of the above

選D,那時候以爲不是a就是c,沒想到兩個都是設計

  • 錯題4及緣由,理解狀況
    A well-defined interface masks the implementation of the collection.
    A .true
    B .false

選A,定義良好的接口能夠幫助集合更好的實現

代碼託管

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172312
    • 結對學習內容
      • 課本第六章

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 1/1 8/8
第二週 500/500 1/2 15/ 23
第三週 802/1302 1/3 12/35
第四周 1530/2832 2/5 15/50

參考資料

相關文章
相關標籤/搜索