鏈式結構是一種數據結構,它使用對象引用變量來建立對象間的連接。鏈式結構是基於數組的集合實現的主要替代方案。前端
舉例:咱們來建立一個Person類,類內部除了含有普通的屬性外,還包含着一個指向另外一個Person對象的引用變量數組
public class Person(){數據結構
private String name;性能
private String address;spa
private Person next; //指向另外一個Person對象的引用變量對象
//省略屬性的get,set方法索引
}內存
以上的Person類就是一個鏈式結構,又稱自引用(self-referential)get
鏈表就是鏈式結構的一種,與大小固定的數組不一樣,若是不考慮計算機自己的內存限制,鏈表容量是沒有上限的。class
因爲鏈表的大小能夠按需伸縮以容納要存儲的元素個數,所以鏈表是一種動態結構
&&&&因爲以上這個緣由,致使由鏈表實現的集合比數組實現的集合在增,刪方面,性能更高。
1.訪問元素
相應的鏈表的訪問元素方面就不及數組了,對於鏈表來講,訪問鏈表中元素的惟一方式就是:從第一個元素開始,順着該鏈表往下,
可想而知若是集合很大,又要尋找最後一個元素,性能就會很低,如檢索存儲了Person類的鏈表的第四個元素,咱們只能:
Person current = first;
for(int i = 0; i < 3; i++){
current = current.next;
}
而數組是基於索引的檢索
2.插入元素
結點能夠被插入到鏈表的任何位置,鏈表的前端,鏈表的內部結構之間,鏈表的末端。
在鏈表前端插入結點,須要從新設置指向整個鏈表的引用。首先,新增結點的next引用被設置爲指定鏈表的當前首節點,接着,指向鏈表前端的引用從新設置爲指向這個
新增長的結點。