ArrayList和LinkedList的索引问题
LinkedList集合中的元素也是有序的,有索引,為什么和ArrayList相比查找比較慢,增刪快呢?
我們打個比方:LinkedList和ArrayList中都裝了10個人。
在ArrayList集合中的10個人是這樣的:Arraylist中本身就有標號0,,,2,3,,4…。每個人都站在一個標號上,比如我要找4號,我說4號出來,站在4號的人,一看自己的位置標號,就知道叫的是他,他就直接出來了,所以比較快。如果我要在4號位置加個人,那么從4號開始后面的的人都要往后移,把4號位置騰出來,所以比較麻煩。
而在LinkedList集合中的每個人都是隨便站的。但是他們中的每個人都認識一個人。并且每兩個認識的人之間都有一個鏈子把他們連接起來。所有人都連接完之后,順著鏈子看,就也有一個順序,每個人就也有一個序號,但是這個序號并沒有標出來。也就是說相當于有一個隱式的序號。所以:比如我要叫4號出來的時候,他們并不知道自己到底誰是4號,所以就要順著鏈子從頭開始查一下,查到4號是誰了,4號就出來了。也就是說,每次要找n號位置的人時,都要從頭查一遍,看誰是n號。所以查找比較麻煩。至于增刪效率高,就很容易理解了。
其實就是一點,就是相當于說:**ArrayList集合中的索引是標示出來的,而LinkedList集合中的索引是隱式的,**看不見的。這樣就很容易理解,為什么LinkedList集合中也有索引為什么查找效率比Arraylist低的原因了。
總結
以上是生活随笔為你收集整理的ArrayList和LinkedList的索引问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object o与Object o=nu
- 下一篇: java 打印map后的输出