用一句话总结ArrayList和LinkedList的区别是:ArrayList底层是数组,查询快、增删慢;LinkedList底层是链表,查询慢、增删快。
但是,任何技术的好坏都是要看场景的...而且,LinkedList增删真的快吗?
关于ArrayList和LinkedList的区别,个人认为要结合底层数据结构来看查询和增删两个操作带来的影响。
查询比较
ArrayList底层是数组,数组的存储空间是连续的,可以根据寻址方式直接找到对应的元素位置,时间复杂度是O(1)。
举个例子:在一条正规有门牌的街上,你知道第一家店是001号,那么008肯定就在第8间,你直接过去就好了。啪一下,很快啊!
但LinkedList底层是链表,存储空间不连续,需要通过指针关联,在查询过程中需要不断跳转新的地址。
举个例子,可能不准确:你想要找一家网红店,结果到了店里,店员告诉你找错了,这是分店3号,并给了你总店的地址,你开车到了总店,结果经理又告诉你业务扩张太快了,这家已经不是总店了,总店在xx路100号...