【Java成神之路】ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?

2022-03-11 09:44:44  晓掌柜  版权声明:本文为站长原创文章,转载请写明出处


一、源码上的接口实现不同

    在List集合中,我们经常会用到ArrayList以及LinkedList集合,但是通过查看源码,就会发现ArrayList实现RandomAccess接口,但是RandomAccess接口里面是空的!Linked并没有实现RandomAccess接口。

    

    

二、RandomAccess接口的作用

    

    通过源码我们看到RandomAccess接口是空的,是一个标志接口,那么实现这个接口有什么作用呢?

    答案:只要List集合实现这个接口,就能支持快速随机访问,然而又有人问,快速随机访问是什么东西?有什么作用?

    通过查看Collections类中的binarySearch()方法,源码如下:

    

    由此可以看出,判断list是否实现RandomAccess接口来实行indexedBinarySerach(list,key)或iteratorBinarySerach(list,key)方法。

    PS:(instanceof其作用是用来判断某对象是否为某个类或接口类型)



最新评论: