A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王帅--- 于 2015-12-6 15:31 编辑

list特点:元素是有序的,元素可以重复。因为该集合体系有索引。
list子类:
*1、ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快,但增删稍慢。线程不同步。
*2、LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。
我不明白里面的索引是什么意思。如果是ArrayList的话,是不是它的数组结构也就是角标有关系?
那链表结构的LinkedList它的索引是什么样的?

7 个回复

倒序浏览
索引不就是角标?

点评

ArrayList是数据结构,打错了;数组结构  发表于 2015-12-6 16:58
角标是数组的特点,ArrayList是数据结构,所以查询快。 那链表结构LinkedList的索引是角标的话,为什么说删除快?链表结构也有角标吗?  发表于 2015-12-6 16:56
回复 使用道具 举报 1 0
ArrayList顾名思义,底层采用的是数组,由数组结构组成的list集合,而数组就有索引(即角标)这个属性,有序,所以查询快,增删反而慢一点,因为删除一个,后面的顺序都变了。
LinkedList采用链表结构,前一个与后一个是成链性关系的。例如A的地址为001122 ,B的地址为223344,C为445566,其中相同的22,44可以理解为链接的标示,这就是链性的。查询的话要慢一点,查完A,根据标示22,查B,然后根据标示44查C,要一个一个去查;而删除的话,例如删除B,那么会更改C为225566,只需要更改标示即可,后面的数据,前面的数据都不影响,所以快很多。
不过就目前开发中所言,ArrayList用的较多,LinkedList很少用到。
回复 使用道具 举报
ArrayList 底层结构是数组通过新建数组复制进行扩容。如果要删除元素和添加元素哪吗其后的元素都要后移或前移
LinkedList地层结构是链表链表添加元素或删除元素只要把后边的地址给要添加的元素,添加的元素的地址给其前一个元素
回复 使用道具 举报
底层 一个 数组 , 一个链表,,  还有list 的特点还有可增减
回复 使用道具 举报
索引在链表里 你就把他当成地址把  没想的这么复杂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马