for(int i=0;i<list.size;i++) 循环为什么慢

链表循环使用(for int i=0;i<list.size;i++)为什么会慢

1.首先链表结构决定 priperAdddress data nextAddress

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

{

。。。。。

}

链表结构这样循环每次都是从表头取数据,单个数据每次都是走的都是全链表查询

通用的方法是使用Iterator 或ListIterator迭代器进行循环

好处是:迭代器中存储了每次链表遍历当前的指针位置

Iterator iterator = list.Iterator;

while(itherator.hasNext()){

扫描二维码关注公众号,回复: 840702 查看本文章

Object obj = iterator.next();

}

ListIterator与Iterator的区别:

1.listIterator允许链表向前循环,iterator只允许向后循环

AIP中方法说明:

listIterator:hasNext() hasPrevious() next()previous() previousIndex() remove()set(E e)

Iteraotor:hasNext()next() remove()
关于 迭代器的详细使用大家可以百度一下或看一下API

当然for(int i=0;i<list.size;i++)用于数组及ArrayList的遍历循环查询是比较快的,因为都是数组结构

猜你喜欢

转载自caizhaohua.iteye.com/blog/2208010
今日推荐