小白測評做網(wǎng)站整合營銷傳播成功案例
數(shù)據(jù)結(jié)構(gòu)
鏈表
優(yōu)點:隨機增刪元素效率高(因為增刪元素不涉及到大量元素的位移)
缺點:查詢效率較低,每一次查找某個元素的時候都需要從頭結(jié)點開始往下遍歷
LinkedList集合
/* 鏈表的優(yōu)點: 由于鏈表的元素在在空間存儲上內(nèi)存地址不連續(xù)。 所以隨機存儲增刪元素的時候不會有大量數(shù)據(jù)的位移,所以隨機增刪效率較高 在以后的開發(fā)過程中,如果遇到隨機增刪集合中元素的業(yè)務(wù)比較多時,建議使用LinkedList 鏈表的缺點: 不能通過數(shù)學表達式計算被查找元素的內(nèi)存地址,每一次查找都是從頭結(jié)點開始遍歷,直到找到為止。所以LinkedList集合檢索/查找的效率較低 ArrayList:把檢索發(fā)揮到極致。(末尾添加元素效率還是很高的) LinkedList:把隨機增刪發(fā)揮到極致 加元素都是往末尾添加,所以ArrayList用的比LinkedList多 ? 源碼中,first 指向頭結(jié)點 last結(jié)點始終指向尾結(jié)點 * */ class LinkedListTest {public static void main(String[] args) {//List list = new LinkedList(); 底層用了數(shù)組List list = new LinkedList();//底層用了雙向鏈表list.add("a");list.add("b");list.add("c");for(int i = 0;i<list.size();i++){Object obj = list.get(i);System.out.println(obj);}//LinkedList沒有初始化容量//最初的這個鏈表中沒有任何元素。first和last的引用都是null//不管是ArrayList還是LinkedList,以后寫代碼時不需要關(guān)心具體是哪個集合//因為我們要面向接口編程,調(diào)用的方法都是接口中的方法} }