1. Use index to traverse the List
2. Use Iterator to traverse the List. (For-each actually uses Iterator)
Note: If only traversal is performed, you can use an index or Iterator to traverse the data. However, if you want to delete elements while traversing, it is best to use Iterator to traverse and delete elements, so as to avoid ConcurrentModificationException exceptions.
The following uses for, for-each, and Iterator to traverse
Instance code:
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 <String> ages = Arrays. asList ("Java", "C ++", "Scala", "Groovy ");
// Getting Iterator from List in Java
Iterator <String> iterator = ages. 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: ages ){
System. out. println ("List Element:" + city );
}
// Third example of Looping List using traditional for loop
For (int I = 0; I <ages. size (); I ++ ){
System. out. printf ("programming language # % d in List is: % s % n", I, ages. 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
Let's look at the example.
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 <String> list = new ArrayList <String> ();
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 <String> 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 !!!!!!!! ");
}
}
The test results are as follows:
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 !!!!!!!!
The test conclusion is strange. The first method is the new syntax supported by the java language. The code is the most concise, but among the three methods, the performance is indeed the worst, retrieving size has the highest traversal performance.