Java 1.8 RandomAccess接口

RandomAccess接口是Java中的一个标志接口,用于标识实现了该接口的List支持高效随机访问。此类List如ArrayList和Vector,它们的get(i)方法性能优于迭代器遍历。了解这个接口有助于优化遍历大量数据时的效率。常见标志接口还包括Serializable(序列化)、Cloneable(克隆)等。实现RandomAccess接口的List在特定算法下能提供更好的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 1.8 RandomAccess接口

简介

RandomAccess接口从jdk1.4开始提供,接口中没有定义任何方法,是标志接口,说明实现该接口的List支持快速随机访问功能。

标志接口

标志接口是没有任何方法和属性的空接口,仅仅表明它的类属于某种特定类型,用法如下:

if(obj instanceof Cloneable) {………} 

常用的标志接口示例:

  • java.io.Serializable:序列号接口。未实现此接口的类将无法使其任何状态序列化或反序列化.为保证 serialVersionUID
    值跨不同 java 编译器实现的一致性,序列化类必须声明一个明确的 serialVersionUID 值;
  • java.lang.Cloneable:克隆接口。表明Object.clone()方法可以合法地对该类实例进行按字段复制.实现此接口的类应该使用公共方法重写
    Object.clone(它是受保护的).如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone
    方法,则会导致抛出 CloneNotSupportedException 异常;
  • java.util.RandomAccess:上面说的快速随机访问接口。用来表明其支持快速(通常是固定时间)随机访问.此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能;

java.rmi.Remote:(没接触过)Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口.任何远程对象都必须直接或间接实现此接口.只有在“远程接口”(扩展 java.rmi.Remote 的接口)中指定的这些方法才可远程使用;

实现该接口的List

  • 实现该接口的类有ArrayList, AttributeList, CopyOnWriteArrayList, RoleList,
    RoleUnresolvedList, Stack, Vector。
  • 实现该接口List的特点是支持快速随机访问功能,如ArarryList的get(i)方法
  • 官方还说了,实现该接口的list特点是get(i)的性能优于迭代器遍历

for (int i=0, n=list.size(); i < n; i++)
         list.get(i);
 
runs faster than this loop:
     for (Iterator i=list.iterator(); i.hasNext(); )
         i.next();

源码

package java.util;

/**

  • @since 1.4
    */
    public interface RandomAccess {
    }

参考链接

jdk官网英文介绍
https://docs.oracle.com/javase/8/docs/api/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值