链表循环使用(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()){
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的遍历循环查询是比较快的,因为都是数组结构