第六章主要介紹了列表,這個列表是一種概念上的籠統的定義。
列表包括鏈表和數組。
列表分爲:有序列表,無序列表,索引列表。php
有序列表 | 其元素按照元素的某種內在特性進行排序。 |
---|---|
無序列表 | 其元素件不具備內在順序,元素按照他們在列表中的位置進行排序 |
索引列表 | 其元素能夠用數字索引來引用 |
有序列表和無序列表在插入式有區別,有序列表須要作到插入以後仍是有序的。而無序列表不是這樣的。而索引列表雖然能夠經過索引進行插入,刪除操做,可是仍是要保持連續。要作到索引之間是連續的。
java集合API中的列表html
方法 | 描述 |
---|---|
add(E element) | 往列表的末端添加一個元素 |
add(int index,E element) | 在指定索引出插入一個元素 |
get(int index) | 返回指定索引處的元素 |
remove(int index) | 刪除指定索引處的元素 |
remove(E object) | 刪除指定對象的第一個出現 |
set(int index,E element) | 替代指定索引處的元素 |
size() | 返回列表中的元素數量 |
使用無序列表:學習計劃
其中的Course類定義了一些課程的信息例如系名,成績等等。而後其中的ProgramOfStudy則是對Course類進行管理,作一些鏈表的基本操做。除此以外還添加了替換,查找等一些維護課程的必要操做。
索引列表應用實例:Josephus問題
這個就是隔幾取一的問題。經過鏈表實現
列表ADT、前端
公共操做java
操做 | 描述 |
---|---|
removeFirst | 從列表中刪除第一個元素 |
removeLast | 從列表中刪除最後一個元素 |
remove | 從列表中刪除某個元素 |
first | 查看位於列表前端的元素 |
last | 查看位於列表末端的元素 |
contains | 肯定列表是否含有某個元素 |
isEmpty | 肯定列表是否爲空 |
size | 肯定列表中的元素數量 |
有序列表git
操做 | 描述 |
---|---|
add | 往列表中添加一個元素 |
無序列表web
操做 | 描述 |
---|---|
addToFront | 把元素添加到列表的前端 |
addToRear | 把元素添加到列表的末端 |
addAfter | 把元素添加到列表中某個一直元素的後面 |
使用數組實現列表
使用鏈表實現列表數組
問題1:在進行測試時發現沒法引用變量。還有toString方法沒有辦法正常調用
數據結構
問題1解決方案:後來發現是沒有加運行函數。還有在toString的函數裏沒有將那個環形數組中開頭的索引值隨循環作自減運算。函數
代碼截圖
學習
第三週&第四周錯題
錯題一:
錯題一解答:
棧的pop操做返回的顯然是一個元素而不是一個節點,這是當時馬虎。
錯題二:
錯題二解答:後來在編碼過程當中實踐了是正確的。
錯題三:
錯題三解答:後面已經說了不是引用的類型,可是我仍是錯選了C,應該選A對象的類型。
錯題四:
錯題四解答:集合中儲存的對象只包含對象自己,並不會有其具體實現的細節。
錯題五:
錯題五解析:這是很明顯得是,在單向列表中,其中常的打印方式必然是從頭部開始的,對應實現的棧的出入棧操做也是在鏈表的頭部,也就是前部實現的。
第五週
錯題一:
錯題一解析:這道題我記得一開始我也想選A來着,知識不知道後來莫名其妙的選擇了B。
本週主要學習了列表,在個人認知中,列表就是包括鏈表和數組。通過了這麼長時間的打磨歷練,好像數組與鏈表的知識都已經掌握了,聽老師說後面的束河圖就要利用鏈表和數組方面的知識,不知道還要通過多少次考驗。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 30/30 | 1/1 | 10/10 | |
第二週 | 766/796 | 1/2 | 40/50 | |
第三週 | 817/1613 | 1/3 | 20/70 | |
第四周 | 1370/3983 | 2/5 | 30/100 |
1.藍墨雲班課
2.java軟件結構與數據結構
3.Java串行化問題