拿排队来打比方:
ArrayList就是,队伍中的每一个人都拿着一个有编了号的条子。叫到几号,几号出来(调用)。
但如过有人(A)要插入队伍中间,那么编号条子要加一个,给队伍最后面的人,队伍最后面的人把他原来的号给前面的一个人,以此类推,直到那个人想要插入的位置,原来在那个位置的人把他自己的号码给A
删除的时候你可以以理解。
如果B不排队了。要出来,那么,他把自己的编号条子给自己后面的人,后面的人再把自己的条子给在自己后面的人,以此类推,最后一个人拿到新的编号条子之后把自己的编号条子丢掉。
LinkedList
而链表就是排队的时候,没有条子,但大家都知道自己前面是谁(除了第一个人),并记住,如果你要插进去,就告诉你想插入的那的人,现在我在你前面了,你要记住我,同时你也要把原来在他前面的那个人记住,作为你前面的人。
如果你要离开队伍,就告诉你后面的人,现在你前面的人是在我前面的那个人,我走了。
这样的话,你就开一理解ArrayList和LinkedList的区别了。 |