标记接口RandomAccess

 用于List的标记接口RandomAccess用来标记对快速(固定时间)随机访问的支持。此接口的主要作用在于允许泛型算法(?)为了提高随机List(数组-by rosemaiden)或者序列化List(链表-by rosemaiden)时的效率而改变自身的行为。
  操纵随机访问列表(比如ArrayList)的最佳算法应用于序列化List时通常需要二次方的复杂度。在应用泛型算法到泛型List的时候,应当先检查是否实现了这个接口,以免造成应用在序列化List时性能不佳,以及在需要的时候改变这些算法的行为。
  事实上,随机和序列List的区别有时候是模糊的。比如某些List的实现类在元素个数变大很大的时候的期望是近似于线性增长的访问时间,但实际上却是常量访问时间。一般而言,如果一个List在用for循环:
for (int i=0, n=list.size(); i < n; i++)
          list.get(i);
的运行速度要快于用迭代器:
     for (Iterator i=list.iterator(); i.hasNext(); )
         i.next();
的运行速度时,应当实现此接口。
RandomAccess接口也是Java Collections Framework的一部分(从1.4开始)。

转载于:https://my.oschina.net/RoseMaiden/blog/182383

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值