黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java中l(wèi)ist的使用之List的應用場景

Java中l(wèi)ist的使用之List的應用場景

更新時間:2020-07-15 16:43:29 來源:動力節(jié)點 瀏覽2796次

ArrayList是基于Object數(shù)組實現(xiàn)的,我們可以通過下標來實現(xiàn)對元素的取,即可以實現(xiàn)隨機訪問,但是在插入的時候,需要移動大量元素,所以對于能夠隨機訪問,而不經(jīng)常進行增刪的需求,我們盡量使用ArrayList。而LinkedList是基于鏈表實現(xiàn)的,那么在進行增刪的時候,只需要修改相應的指針,就可以實現(xiàn)元素的增刪,效率非常高,所以對于需要快速增刪元素,應該選擇LinkedList。

我們不僅要好奇,為什么LinkedList的插入效率這么高呢?下面我們通過源碼來一探究竟。

Java中l(wèi)ist的使用之List的應用場景

從中,我們可以看出:通過add(int index,E element)向LinkedList插入元素時。先是在雙向鏈表中找到要插入節(jié)點的位置index;找到之后,再插入一個新節(jié)點。

雙向鏈表查找index位置的節(jié)點時,有一個加速動作:若index<雙向鏈表長度的1/2,則從前向后查找;否則,從后向前查找。所以LinkedList的插入效率非常高,與之形成對比的,就是ArrayList的插入了。

Java中l(wèi)ist的使用之List的應用場景

從上面的方法可以看出,在進行插入之前,首先會調(diào)用ensureCapacity()方法,來保證ArrayList的容量,如果容量不足,首先要進行擴容,然后真正費時的就是這句:

System.arraycopy(elementData,index,elementData,index+1,size-index)

這句話表明,在插入的時候,會移動index后面的所有元素,這就是ArrayList插入元素效率低的原因。

下面我們來分析一下ArrayList和LinkedList隨機訪問的效率。

首先來看LinkedList的隨機訪問:

Java中l(wèi)ist的使用之List的應用場景

對于LinkedList來說,隨機訪問第index的元素,從頭結點開始遍歷,查找到index的位置,然后返回元素,這里只不過有一個加速遍歷的動作而已。

但是對于ArrayList來說就不同了:

Java中l(wèi)ist的使用之List的應用場景

從中,我們可以看出:通過get(int index)獲取ArrayList第index個元素時。直接返回數(shù)組中index位置的元素,而不需要像LinkedList一樣進行查找。

以上就是動力節(jié)點java培訓機構的小編針對“Java中l(wèi)ist的使用之List的應用場景”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一区二区不卡视频在线观看 | 日韩在线一区二区三区免费视频 | 国产欧美国日产网站 | 天天摸夜夜摸爽爽狠狠婷婷97 | 国产一卡2卡3卡四卡精品网站 | 日本亚洲欧美美色 | www.欧美黄色 | 色狠狠狠色噜噜噜综合网 | 成人高辣h视频一区二区在线观看 | 一本大道香蕉大vr在线吗视频 | 最好看2019高清中文字幕 | a级午夜毛片免费一区二区 a级午夜理论免费毛片 | 天天干免费视频 | 窝窝午夜看片成人精品 | 天天碰夜夜 | 色综合久久久高清综合久久久 | 波多野结衣一区二区三区88 | 国外欧美一区另类中文字幕 | 亚欧日韩 | 国产一级在线播放 | 中文字幕一区二区精品区 | 欧美激情(一区二区三区) | 日日噜噜夜夜狠狠va视频 | 欧美xxxx18动漫 | 一级一级一片免费高清 | 免费国产a| 亚洲福利 | 欧美成视频人免费淫片 | 国产精品一区二区三区高清在线 | 色版视频在线观看 | 国产精品视频永久免费播放 | www.网站黄网站 | 久久免费视频观看 | 免费在线h | 国产亚洲人成在线影院 | 污视频网站免费看 | 全午夜免费一级毛片 | 色黄视频网站 | 三级www| 人人添人人麦人人爽夜欢视频 | 成人狠狠色综合 |