列表和以前的棧、隊列有類似之處,都是一種集合,不一樣之處在於:列表能夠在中間添加和刪除元素。html
其方法主要有git
方法 | 描述 |
---|---|
add(E element) | 列表末端添加 |
add(int index,E element) | 索引處添加 |
get(int index) | 返回索引處元素 |
remove(E o) | 刪除列表中第一個o |
remove(int index) | 刪除索引處元素 |
set(int index,E element) | 替代索引處元素 |
size() | 返回元素數量 |
這些方法實現起來和以前的線性結構並沒有二致,以前也在隊列中使用過中間插入的方法,處理起來不難。數組
無序和有序:這是本章和以前最不同的地方,列表分爲三種類型:有序、無序、索引。有序列表add()
時會根據所添加元素的關鍵值自動排序;無序列表則能夠根據須要添加至所制定的位置(前addToFront()
、後addToRear()
、中addAfter()
)。網絡
利用數組、鏈表來實現有序和無序列表:理解了上面的概念後,無需列表實現方法和棧、隊列的實現基本相同。值得注意的是有序列表須要Comparable接口來幫助實現,參考了上學期第八週的做業和知識進行復習。數據結構
有序與無序,當時光從字面上理解,誤覺得有序指具備線性的結構而無序反之,結果並非這樣。有序和無序指的是列表元素的內在關聯,看書後獲得正確理解(上面↑)學習
什麼是Serializable接口?(串行化?序列化?)ui
引用:設計
什麼是Serializable接口?
一個對象序列化的接口,一個類只有實現了Serializable接口,它的對象才能被序列化
什麼是序列化?
將對象的狀態信息轉換爲能夠存儲或傳輸的形式的過程,在序列化期間,對象將其當前狀態寫入到臨時存儲區或持久性存儲區,以後,即可以經過從存儲區中讀取或反序列化對象的狀態信息,來從新建立該對象
什麼狀況下須要序列化?
當咱們須要把對象的狀態信息經過網絡進行傳輸,或者須要將對象的狀態信息持久化,以便未來使用時都須要把對象進行序列化3d
基本沒有問題,都是能夠立馬解決的小細節(索引差一位、鏈表一個指針丟失的小問題)。指針
(statistics.sh腳本的運行結果截圖)
top
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 6/6 | |
第二週 | 771/771 | 1/2 | 16/22 | |
第三週 | 562/1233 | 1/3 | 15/37 | |
第四周 | 1503/2736 | 2/5 | 15/52 |