您当前的位置: 首页 >  Java

wespten

暂无认证

  • 0浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深入学习java源码之Arrays.asList()与Arrays.stream()

wespten 发布时间:2019-01-06 23:26:46 ,浏览量:0

深入学习java源码之Arrays.asList()与Arrays.stream()

RandomAccess标记接口

标记接口,Marker interface,它们是一类没有定义任何接口方法的接口,表现为一个空接口  没有接口方法意味着实现该接口的类无需实现任何接口方法,仅仅作为一种标记,以供其他方法判断  作用就是当某个类实现这个接口后即拥有了这个接口的功能,Java 虚拟机在运行时会识别到它  标记接口是Java的语言特性  在计算机科学中,随机访问(RandomAccess)是从大量的可寻址元素的数据中访问任何元素大致和访问其他元素一样简洁有效,不管多少元素在这个集合中。与随机访问相反的是顺序访问(SequenceAccess)

RandomAccess 就是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的List中性能更加高效(在Collections二分查找时)。

JDK中说的很清楚,在对List特别是Huge size的List的遍历算法中,要尽量来判断是属于RandomAccess(如:ArrayList)还是SequenceAccess(如:LinkedList) 

RandomAccess是一个空接口,而空接口的作用一般是起到一个标识的作用。  通俗点讲,就是判断一个list是否实现了RandomAcess接口,如果实现了,采用简单的for循环进行访问速度比较快。  如果未实现RandomAcess接口,则采用iterator循环访问速度比较快。  判断使用instanceof Collections的binarySearch方法:

public static  int binarySearch(List            
关注
打赏
1665965058
查看更多评论
0.0450s