美文网首页
由list instanceof RandomAccess引发的

由list instanceof RandomAccess引发的

作者: 温不胜_kangle | 来源:发表于2020-06-16 11:13 被阅读0次

1、在调用List.partition()方法时,会有如下操作

list instanceof RandomAccess ?new Lists.RandomAccessPartition(list, size) :new Lists.Partition(list, size)

2、RandomAccess标记快速随机访问的接口

3、List的所有子类均支持随机访问,但只有部分支持快速随机访问;

ArrayList基于数组实现,天然带下标,可以实现常量级的随机访问,复杂度为O(1)

LinkedList基于链表实现,随机访问需要依靠遍历实现,复杂度为O(n)

所以ArrayList具备快速随机访问功能,而LinkedList没有

4、知道3,是为了得出:当一个List拥有快速访问功能时,其遍历方法采用for循环最快速。而没有快速访问功能的List,遍历的时候采用Iterator迭代器最快速。

5、对5万个元素的操作时间比较

6、实现快速随机访问的接口有:

ArrayList、Vector、CopyOnWriteArrayList、RandomAccessSubList、UnmodifiableArrayList

相关文章

网友评论

      本文标题:由list instanceof RandomAccess引发的

      本文链接:https://www.haomeiwen.com/subject/maulxktx.html