`

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()){

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的遍历循环查询是比较快的,因为都是数组结构

分享到:
评论

相关推荐

    删除List中的重复值

    删除List中的重复值 ... for ( int i = 0 ; i &lt; list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j &gt; i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } }

    最新JAVA编程题全集_50题及答案

    for(int i=0;i&lt;base.length();i++){ List&lt;String&gt; temp = list(new StringBuilder(base).deleteCharAt(i).toString(),buff+base.charAt(i)); result.addAll(temp); } return result; } } ++++++++++++...

    数据结构第二章作业答案参考(C语言)

    for (k=0,i=0;i&lt;A.length;i++) { if(A.data[i]== ‘#’) k++; else A.data[i-k]= A.data[i]; } A.length= A.length-k; } 2. (共15分)已知带头结点的单循环链表L,编写算法实现删除其中所有值为e 的数据元素结点...

    计科javaexp6.doc

    for(int i=0;i&lt;list.size();i++){ // 用循环不断进行筛选文件和目录 if(list.get(i).isDirectory()){ blank = blanks.get(i)+2; File childFile[] = list.get(i).listFiles(); for(int j=0;j&lt;childFile.length...

    java遍历list集合3种方式和性能对比

    i &lt; list.size(); i++) { String data = list.get(i); // ... } ``` 这种方式没有使用迭代器,内部不锁定数据,因此在单线程环境下通常效率最高。然而,在多线程环境中,如果需要考虑并发操作,必须自行处理同步...

    java 处理Excel 带 List

    i &lt;= dataList.size(); i++) { Row dataRow = sheet.createRow(i); Object[] data = dataList.get(i - 1); for (int j = 0; j &lt; data.length; j++) { Cell cell = dataRow.createCell(j); cell.setCellValue...

    Kmeans数据挖掘算法的实现(Java)

    for (int i = 0; i &lt; point1.length; i++) { distance += Math.pow(point1[i] - point2[i], 2); } return Math.sqrt(distance); } ``` 4. **初始化质心**: 可以随机选择k个数据点作为初始质心,或者使用...

    txt读取文本

    i &lt; list.size(); i++) { String s= (String )list.get(i); System.out.println("s的值是:"+s);//循环读取每一行的值 String[] sArray =s.split(",");//用逗号分割每一行的属性 //给实体属性循环设值 ...

    poi_export_excel.zip

    for (int i = 0; i &lt; headerNames.length; i++) { Cell cell = headerRow.createCell(i); cell.setCellValue(headerNames[i]); } // 循环遍历数据,创建数据行 for (int i = 0; i &lt; dataList.size(); i++) { ...

    达内 coreJava 习题答案

    for (int i = 0; i &lt; 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些 pi += (fenZi/fenMu) ; fenZi *= -1.0; //每项分子的变化是+4,-4,+4,-4 .... fenMu += 2.0; //分母的变化是1,3...

    链表和冒泡排序

    for (int i = 0; i &lt; arr.length - 1; i++) { for (int j = 0; j &lt; arr.length - 1 - i; j++) { if (arr[j] &gt; arr[j + 1]) { // 交换元素 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }...

    福建师大Java作业1

    for (int i = 0; i &lt; n / 2; i++) { for (int j = i; j &lt; n - i - 1; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[n - j - 1][i]; matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]; matrix...

    Excel POI读取封装(文件+示范代码)

    for (int i = 0; i &lt; ch.length; i++) { ret *= 26; ret += this.ch2int(ch[i]); } return ret; } static final Config config = new Config(); /** 关闭数据库连接 */ public void closeResource...

    最短路径的java程序

    for (int i = 0; i &lt; graph.nodes.size(); i++) { for (int j = 0; j &lt; graph.nodes.size(); j++) { // 更新距离 if (distances[i][j] &gt; distances[i][k] + distances[k][j]) { distances[i][j] = distances[i]...

    java求解素数环问题

    for (int i = 0; i &lt; primes.size(); i++) { int start = primes.get(i); for (int j = i + 1; j &lt; primes.size(); j++) { int next = primes.get(j); // 检查运算关系,例如加法 if (checkPrimeRing(start, ...

    《数据结构》算法实现及解析_高一凡(配合严蔚敏的数据结构)\严蔚敏数据结构习题集答案

    i+count-1&lt;=a.length-k;count++) //注意循环结束的条件 a.elem[i+count-1]=a.elem[i+count+k-1]; a.length-=k; return OK; }//DeleteK 2.11 Status Insert_SqList(SqList &va,int x)//把x插入递增有序表va中 { ...

    数据结构习题集答案

    i+count-1&lt;=a.length-k;count++) //注意循环结束的条件 a.elem[i+count-1]=a.elem[i+count+k-1]; a.length-=k; return OK; }//DeleteK 2.11 Status Insert_SqList(SqList &va,int x)//把x插入递增有序表va中 { ...

    java 简单实例 list实现bubble sort

    for (int i = 0; i &lt; numbers.size() - 1; i++) { for (int j = 0; j &lt; numbers.size() - 1 - i; j++) { if (numbers.get(j) &gt; numbers.get(j + 1)) { int temp = numbers.get(j); numbers.set(j, numbers.get...

    使用loopviewpager打造banner图轮播,带圆点滚动

    for (int i = 0; i &lt; banners.size(); i++) { ImageView dot = new ImageView(this); dot.setBackgroundResource(R.drawable.dot_inactive); indicatorLayout.addView(dot); } // 监听页面变化 viewPager....

    简单三人扑克牌发牌代码(主要是思路)

    for (int i = 0; i &lt; 3; i++) { playerHands.add(new ArrayList&lt;&gt;()); } int cardIndex = 0; while (cardIndex &lt; cards.size() - 8) { for (List&lt;Card&gt; hand : playerHands) { if (cardIndex &lt; cards.size()...

Global site tag (gtag.js) - Google Analytics