java中ArrayList和LinkedList使用注意事项

来源:互联网 发布:88折话费 源码 编辑:程序博客网 时间:2024/05/16 15:59

1. ArrayList和LinkedList的访问方式

由于ArrayList实现了RandomAccess访问方式所以在循环读取的时候我们采用下标的方式访问。

如果我们使用foreach方式访问(即:伪码)

for(Object obj : ArrayList){

System.out.println(obj);

}

以上访问方式会采用Iterator的方式访问。Iterator采用的方式是记住相邻元素的位置,然后依次读取访问。

这样就明显就与RandomAccess相悖,所谓RandomAccess就是可以随机获取指定元素位置的数据。


2.LinkedList本来就是列表的数据结构,所以元素与元素之间本来就有关联关系。所以访问时,我们可以使用迭代的方式访问最好不过了。

ps:默认使用get(index),通过阅读底层代码我们发现它是使用查找的方式获取指定元素的:就是将整个LinkedList的size除以2,然后与index进行比较

如果大于size/2 则倒序循环访问直到size/2位置查找指定位置的数据。如果index小于size/2,则顺序访问直到size/2位置找到对应元素。


3.由于ArrayList底层是数组结构,LinkedList底层是链表的数据结构,所以决定了他们更适合用途。

如果涉及到元素的增删操作比较频繁时我们使用LinkedList,而涉及到元素的随机获取我们使用ArrayList 

0 0
原创粉丝点击