关于LinkerList转不过弯来!

Bigdicker 2016-10-26 10:05:15
既然LinkedList实现了List接口,那就具有了索引,为什么去查找一个数的时候不能用索引而非要重第一个元素开始遍历呢?
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这跟数据结构有关
Alvis_you 2016-10-27
  • 打赏
  • 举报
回复
ls说的都+1 linkedList方便的是插入,比如在首位直接插入数据,并不擅长查询。
乐之者v 2016-10-27
  • 打赏
  • 举报
回复
LinkList类似于链表,你想查询某个元素,得在第一个元素找到第二个元素的地址,然后在第二个元素找到第三个元素的地址,最后找到你想要的元素。。 ArrayList类似于数组,可以直接找到你想要的元素。
  • 打赏
  • 举报
回复
楼上的都+1
unauthorized401 2016-10-27
  • 打赏
  • 举报
回复
底层实现机制不一样,ArrayList采用的是动态数组,而LinkedList采用的是链式结构,所以对于ArrayList可以通过索引直接查到具体的元素,而LinkedList必须得从头遍历。
解开者 2016-10-26
  • 打赏
  • 举报
回复
接口只是规范,但依赖于不同实现类的细节,复杂度不一样。 LinkedList,从数据结构上看,随机访问是线性复杂度,所以get方法是O(n)的,而ArrayList的get方法是O(1)的。 相应的,你用ListIterator遍历,调用add方法的时候,链表是O(1)的,而线性表是O(n)的。 java在代码层次不那么强调复杂度了,这些东西原理都是共通的,不分语言。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧