一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java中遍历List的几种方法

时间:2016-02-25 编辑:简简单单 来源:一聚教程网

1.使用索引(index)来遍历List

2.使用Iterator来遍历List。(for-each其实也是利用Iterator)

注意:如果仅仅是遍历,那么可以可以使用索引或Iterator来遍历。但是,如果你在遍历的同时还要删除元素,则最好使用Iterator来遍历和删除元素,这样可以避免ConcurrentModificationException异常。

下面是使用for、for-each和Iterator来遍历

实例代码:


import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
 *
 * Java program to demonstrate different ways to loop, iterate or traverse List in Java.
 * There are three example in this program, first examples shows how to loop List
 * using Iterator, Second Example shows Looping over List using advanced Java 5 for loop
 * while third and last examples demonstrate use of traditional for loop for traversing
 * a List in Java.
 *
 * @author Javin Paul
 */
public class ListLoopExample{
  
    public static void main(String args[]){
      
        //First example to iterate List in Java using Iterator
        List languages = Arrays.asList("Java", "C++", "Scala", "Groovy");
 
 
        //Getting Iterator from List in Java
        Iterator iterator = languages.iterator();
        System.out.println("Iterating List in Java using Iterator ");
 
 
        //Iterating through all elements of List
        while (iterator.hasNext()) {
            System.out.printf("Current element in List is %s %n", iterator.next());
        }
 
 
        //Second example of Iterating over List in Java using foreach loop
        System.out.println("Looping List in Java using foreach loop");
        for (String city : languages) {
            System.out.println("List Element: " +  city);
        }
      
        //Third example of Looping List using traditional for loop
        for(int i =0; i             System.out.printf("programming language #%d in List is : %s %n", i, languages.get(i) );
        }
      
    
    }
}
 
Output:
Iterating List in Java using Iterator
Current element in List is London
Current element in List is Tokyo
Current element in List is NewYork
Current element in List is Mumbai
Looping List in Java using foreach loop
List Element: London
List Element: Tokyo
List Element: NewYork
List Element: Mumbai
City #0 in List is : London
City #1 in List is : Tokyo
City #2 in List is : NewYork
City #3 in List is : Mumbai

再看例子

package com.hisense.tiger.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {
 public static void main(String[] args)
 {
  List list = new ArrayList();
  long t1,t2;
  for(int j = 0; j < 10000000; j++)
  {
   list.add("aaaaaa" + j);
  }
  System.out.println("List first visit method:");
  t1=System.currentTimeMillis();
  for(String tmp:list)
  {
   //System.out.println(tmp);
  }
  t2=System.currentTimeMillis();
  System.out.println("Run Time:" + (t2 -t1) + "(ms)");
  System.out.println("List second visit method:");
  
  t1=System.currentTimeMillis();
  for(int i = 0; i < list.size(); i++)
  {
   list.get(i);
   //System.out.println(list.get(i));
  }
  t2=System.currentTimeMillis();
  System.out.println("Run Time:" + (t2 -t1) + "(ms)");
  
  System.out.println("List Third visit method:");
  Iterator iter = list.iterator();
  
  t1=System.currentTimeMillis();
  while(iter.hasNext())
  {
   iter.next();
   //System.out.println(iter.next());
  }
  t2=System.currentTimeMillis();
  System.out.println("Run Time:" + (t2 -t1) + "(ms)");
    
  System.out.println("Finished!!!!!!!!");
  
  
 }
}

 测试结果如下:

List first visit method:
Run Time:170(ms)
List second visit method:
Run Time:10(ms)
List Third visit method:
Run Time:34(ms)
Finished!!!!!!!!

    测试的结论很奇怪,第一种方法是java语言支持的新语法,代码最简洁,但是在三种方法中,性能确是最差的,取size进行遍历性能是最高的,求牛人解释

热门栏目