小白測評做網(wǎng)站整合營銷傳播成功案例
數(shù)據(jù)結(jié)構(gòu)
鏈表
優(yōu)點(diǎn):隨機(jī)增刪元素效率高(因?yàn)樵鰟h元素不涉及到大量元素的位移)
缺點(diǎn):查詢效率較低,每一次查找某個(gè)元素的時(shí)候都需要從頭結(jié)點(diǎn)開始往下遍歷
LinkedList集合
/* 鏈表的優(yōu)點(diǎn): 由于鏈表的元素在在空間存儲上內(nèi)存地址不連續(xù)。 所以隨機(jī)存儲增刪元素的時(shí)候不會有大量數(shù)據(jù)的位移,所以隨機(jī)增刪效率較高 在以后的開發(fā)過程中,如果遇到隨機(jī)增刪集合中元素的業(yè)務(wù)比較多時(shí),建議使用LinkedList 鏈表的缺點(diǎn): 不能通過數(shù)學(xué)表達(dá)式計(jì)算被查找元素的內(nèi)存地址,每一次查找都是從頭結(jié)點(diǎn)開始遍歷,直到找到為止。所以LinkedList集合檢索/查找的效率較低 ArrayList:把檢索發(fā)揮到極致。(末尾添加元素效率還是很高的) LinkedList:把隨機(jī)增刪發(fā)揮到極致 加元素都是往末尾添加,所以ArrayList用的比LinkedList多 ? 源碼中,first 指向頭結(jié)點(diǎn) last結(jié)點(diǎn)始終指向尾結(jié)點(diǎn) * */ 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沒有初始化容量//最初的這個(gè)鏈表中沒有任何元素。first和last的引用都是null//不管是ArrayList還是LinkedList,以后寫代碼時(shí)不需要關(guān)心具體是哪個(gè)集合//因?yàn)槲覀円嫦蚪涌诰幊?#xff0c;調(diào)用的方法都是接口中的方法} }