列表有三種類型:有序列表、無序列表、索引列表html
分別能夠表示爲Java集合API中的列表
前端
有序列表:add(列表中添加元素)
java
無序列表:addToFront
git
ProgramOfStudy的UML圖
數組
集合是Java API所提供的一系列類,能夠用於動態存放多個對象。集合與數組的不一樣在於,集合是大小可變的序列,並且元素類型能夠不受限定,只要是引用類型。集合中不能放基本數據類型,但能夠放基本數據類型的包裝類。 集合類所有支持泛型,是一種數據安全的用法。java列表是集合的一種,而且列表中的元素是有序的,且容許重複。java列表又稱爲java list。安全
問題二解決:這句話的意思可能並非說連續與否,由於數組中的元素也是連續存在的,應該是指它出現空位置的修復速度吧,就像書上後面描述若是刪除一個元素,其餘元素的位置會像「坍塌」了同樣以消除產生的間隙。ide
問題三解決:數組的長度是存放線性表的存儲空間的長度存儲分配後這個量是通常是不變的。用數組實現列表時,的確須要進行擴容操做
protected void expandCapacity() { list = Arrays.copyOf(list, list.length * 2); }
在這裏這句話的含義並不等同於使用鏈表實現列表時的狀況。學習
'contains(T)' in '新第四周.six.LinkedList.LinkedOrderedList' clashes with 'contains(T)' in '新第四周.six.LinkedList.ListADT'; both methods have same erasure, yet neither overrides the other
問題一解決:這個錯誤的意思是,兩個方法在類型擦除後,具備相同的原生類型參數列表,可是也不能覆蓋另外一個方法。泛型類型在編譯後,會作類型擦除,只剩下原生類型。如參數列表中的T類型會編譯成Object,可是會有一個Signature。儘管兩個方法具備相同的字節碼,可是類型參數信息用 一個新的簽名(signature)屬性記錄在類模式中。JVM 在裝載類時記錄這個簽名信息,並在運行時經過反射使它可用。這就致使了這個方法既不能做爲覆蓋父類contains的方法,也不能做爲contains方法的重載。網站
問題二解決:經過查找資料,解釋是:.net
modCount字面意思就是修改次數,全部使用modCount屬性的全是線程不安全的,對內容的修改都將增長這個值,那麼在迭代器初始化過程當中會將這個值賦給迭代器的 expectedModCount。在迭代過程當中,判斷 modCount 跟 expectedModCount是否相等,若是不相等就表示已經有其餘線程修改了,在迭代器遍歷的過程當中,由於ArrayList被設計成非同步的,一旦發現這個對象的modcount和迭代器中存儲的modcount不同那就拋異常。
看起來不太好理解,舉個栗子:教務處網站統計學生成績,假如進行成績的修改,則modCount就至關於一本日誌來記錄每次對成績的修改,萬一實際成績與教務處網站存出成績有出入,則可經過日誌查看問題出在哪裏。
問題三:instanceof是什麼意思?
用法:
boolean result = object instanceof class參數:
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
說明:
若是 object 是 class 的一個實例,則 instanceof 運算符返回 true。若是 object 不是指定類的一個實例,或者 object 是 null,則返回 false。
這樣看來圖中的意思就是判斷element是不是Comparable類型的。
pp6.8
pp6.11
pp6.17
錯題一
錯題二:
錯題三:
錯題四:
錯題四解析:正確的應該是實現基於數組的堆棧最有效的方法是將堆棧底部保持在數組的位置0上。由於若是棧在數組中是倒序的,效率會高。
這周在作實驗時遇到的問題不少,感受沒有系統化所學習的各種東西。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | |
---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 |
第一週 | 0/0 | 1/1 | 8/8 |
第二週 | 1163/1163 | 1/2 | 15/23 |
第三週 | 774/1937 | 1/3 | 12/50 |
第四周 | 3596/5569 | 2/5 | 12/62 |