RandomAccess接口可以判断List对象是否支持快速随机访问(数组的get(i)访问)

来源:互联网 发布:it occured that 编辑:程序博客网 时间:2024/06/10 23:33

 

原因在这里:

对ArrayList、Vector,内部实现是数组(连续存储的),支持快速的随机访问;对链表LinkedList,每次随机访问get(i)都要遍历整个链表。而这两种实现可以用RandomAccess来区分。

所以,对数组实现的List,用随机访问比用迭代访问快10%左右,应尽量用get(i)访问。对链表实现的List,get(i)很慢,应尽量用迭代来访问,如:

if  (!(list instanceof RandomAccess))

{

Iterator iter = list.iterator();

for (int i = 0, n = list.size(); i < n; i++)

{

    o = iter.next();

}

}

 

 

 

0 0
原创粉丝点击