RandomAccess接口

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Randomaccess接口RandomAccess是一个标记接口,实现该接口表示支持快速访问。这是一个空接口,没有任何方法。当实现该接口时,说明支持快速访问。即:for (int i=0, n=list.size(); i<n; i++)list.get(i);要比for (Iterator i=list.iterator(); i.hasNext(); )i.next();访问速度快。当没有实现该接口时,for (int i=0, n=list.size(); i<n; i++)list.get(i);要比for (Iterator i=list.iterator(); i.hasNext(); )i.next();访问速度慢。例子

package com.lion;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.RandomAccess;public class RandomAccessTest { public static void traverse(List list) { long startTime; long endTime; //遍历前先判读是否实现了RandomAccess接口 if (list instanceof RandomAccess) { System.out.PRintln(list.getClass()+"实现了RandomAccess接口"); } else { System.out.println(list.getClass()+"未实现RandomAccess接口"); } System.out.println("\n以实现RandomAccess接口方式访问"); startTime = System.currentTimeMillis(); for (int i = 0; i < list.size(); i++) { Object o = list.get(i); // System.out.println(o); } endTime = System.currentTimeMillis(); System.out.println("耗时:" + (endTime - startTime)); System.out.println("\n以未实现RandomAccess接口方式访问"); startTime = System.currentTimeMillis(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object o = iter.next(); // System.out.println(o); } endTime = System.currentTimeMillis(); System.out.println("耗时:" + (endTime - startTime)); } /** * @param args */ public static void main(String[] args) { List arraylist = new ArrayList(); // 添加1000个元素 for (int i = 0; i < 100000; i++) { arraylist.add("aaa"); } List linkList = new LinkedList(); // 添加1000个元素 for (int i = 0; i < 100000; i++) { linkList.add("aaa"); } traverse(arraylist); traverse(linkList); }}

运行结果:

class java.util.ArrayList实现了RandomAccess接口

以实现RandomAccess接口方式访问耗时:9

以未实现RandomAccess接口方式访问耗时:12class java.util.LinkedList未实现RandomAccess接口

以实现RandomAccess接口方式访问耗时:4128

以未实现RandomAccess接口方式访问耗时:7

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航