记集合之实现RandomAccess接口的作用

1、在List集合中,通过查看源码,就会发现ArrayList实现RandomAccess接口,Linked并没有实现RandomAccess接口。

ArrayList:源码

 

Linkedlist:源码

 

2、什么是RandomAccess,有什么作用呢:

RandomAccess:源码

 

 RandomAccess什么都没有,RandomAccess接口是一个标志接口(Marker)

 

 由此可以看出,判断list是否实现RandomAccess接口来实行indexedBinarySerach(list,key)或iteratorBinarySerach(list,key)方法。ps(instanceof其作用是用来判断某对象是否为某个类或接口类型)

通过查看源代码,发现实现RandomAccess接口的List集合采用一般的for循环遍历(indexedBinarySerach),而未实现这接口则采用迭代器(iteratorBinarySerach)。

另外:实验可以发现:ArrayList用for循环遍历比iterator迭代器遍历快,LinkedList用iterator迭代器遍历比for循环遍历快

所以说,考虑到List集合的不同子类采用不同的遍历方式,能够提高性能!

 

posted on 2021-08-05 14:58  0027014302yoyoyo  阅读(64)  评论(0)    收藏  举报