文档章节

RandomAccess接口

宋涛涛
 宋涛涛
发布于 2016/05/03 13:47
字数 196
阅读 13
收藏 0

Java数据集合框架中,提供了一个RandomAccess接口,该接口没有方法,只是一个标记。通常被List接口的实现使用,用来标记该List的实现是否支持Random Access。

        一个数据集合实现了该接口,就意味着它支持Random Access,按位置读取元素的平均时间复杂度为O(1)。比如ArrayList。

        而没有实现该接口的,就表示不支持Random Access。比如LinkedList。

        所以看来JDK开发者也是注意到这个问题的,那么推荐的做法就是,如果想要遍历一个List,那么先判断是否支持Random Access,也就是 list instanceof RandomAccess。

比如:

if (list instanceof RandomAccess) { 
   //使用传统的for循环遍历。
} else {
   //使用Iterator或者foreach。
}


© 著作权归作者所有

宋涛涛
粉丝 4
博文 50
码字总数 15596
作品 0
昌平
高级程序员
私信 提问
ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口?

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

kim_o
2018/06/07
65
0
AbstractList源码解析

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是 第一个实现随机访问方法的集合类,但 不支持添加和替换 在 抽象类中要求子类必须实现两个方法 iterator() size() 因此子类必...

芥末无疆sss
2018/10/05
0
0
集合框架_randomAccess理解

RandomAccess仅仅是一个标记接口,就像是Serialable。 1、标记了该接口的类更适合于是用数组遍历形式来遍历集合。例如ArrayListVector。通常是使用数组来完成的,数组这种数据结构适合于随机...

奋斗一生
2012/08/22
54
0
标记接口RandomAccess

用于List的标记接口RandomAccess用来标记对快速(固定时间)随机访问的支持。此接口的主要作用在于允许泛型算法(?)为了提高随机List(数组-by rosemaiden)或者序列化List(链表-by rosemaide...

roseMaiden
2013/12/07
110
0
重新认识java-Vector

源码解读 的声明: 通过继承和实现关系,可以看出继承自抽象类,实现了接口, , , . 功能和特点 Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍...

hgfgoodcreate
2016/03/04
58
0

没有更多内容

加载失败,请刷新页面

加载更多

可能是国内第一篇全面解读 Java 现状及趋势的文章

作者 | 张晓楠 Dragonwell JDK 最新版本 8.1.1-GA 发布,包括全新特性和更新! 导读:InfoQ 发布《2019 中国 Java 发展趋势报告》,反映 Java 在中国发展的独特性,同时也希望大家对 Java 有...

阿里云官方博客
5分钟前
1
0
Spring Boot 2.x基础教程:Swagger静态文档的生成

前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块,可以先阅读: Spring Boot 2.x基础教程...

程序猿DD
8分钟前
1
0
《毅力》读书笔记

1.确信你全身心地投入 2.准备好为目标进行艰难的跋涉 3.通过减少需要使用毅力的情形,为将来的挑战做好准备 4.尽可能具体细致地确定你的目标和实现目标的过程 5.把挑战分解为小而易于管理的小...

lingch
9分钟前
2
0
zk中快速选举FastLeaderElection实现

选举涉及概念 服务器状态 投票 如何选择投票? 协议 选举 如何进行选举? epoch 发送者 接收者 发送队列 接收队列 服务器状态 public enum ServerState { LOOKING,寻找Leader状态,当服务处于...

writeademo
12分钟前
1
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

Linux就该这么学
15分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部