ArrayList和LinkList的查找效率
总结
①ArrayList中随机查找的效率要比顺序查找要块一点
②LinkedLIst中顺序查找的效率要比随机查找效率上要快上很多
③在项目中遍历时往往需要使用instanceof关键字来判断是否实现了RandomAccess接口,进而采取对应的查找策略
为什么ArrayList中随机查找的效率要比顺序查找要块一点
运行结果
我们从运行结果上可以很清晰的看见ArrayList在随机查找上的速率要比顺序查找上快得多。
为什么出现这样的状况
因为ArrayList中实现了RandomAccess接口
RandomAccess标记接口
经验, List 实现应实现此接口,如果对于类的典型实例,此循环
for (int i=0, n=list.size(); i < n; i++) list.get(i);
比这个循环运行得更快:
for (Iterator i=list.iterator(); i.hasNext(); ) i.next();
为什么LinkedLIst中顺序查找的效率要比随机查找效率上要块上很多
查找结果
我们可以很清晰的看见两种查找效率是天差地别的,因此强烈建议LinkedList一定要用顺序访问的方式