2022-03-11 09:44:44 晓掌柜 版权声明:本文为站长原创文章,转载请写明出处
在List集合中,我们经常会用到ArrayList以及LinkedList集合,但是通过查看源码,就会发现ArrayList实现RandomAccess接口,但是RandomAccess接口里面是空的!Linked并没有实现RandomAccess接口。
通过源码我们看到RandomAccess接口是空的,是一个标志接口,那么实现这个接口有什么作用呢?
答案:只要List集合实现这个接口,就能支持快速随机访问,然而又有人问,快速随机访问是什么东西?有什么作用?
通过查看Collections类中的binarySearch()方法,源码如下:
由此可以看出,判断list是否实现RandomAccess接口来实行indexedBinarySerach(list,key)或iteratorBinarySerach(list,key)方法。
PS:(instanceof其作用是用来判断某对象是否为某个类或接口类型)