3 ways to Loop through aList in Java There are multiple ways to traverseor loop through aList in Java e.g. by using anIterator, by using an enhanced for loop of Java 5, and not the forEach() method of Java 8. Given aList is an index-based collection if you know the index you can retrieve an object from aList and because of this, you can also use a traditional for loop which keeps count for iterating aList. Now the question is whether should you use theIterator or enhanced for loop, or the forEach() method of Java 8 for looping over List in Java. Well, it depends on what you are doing with the object, if you need to remove some objects from List then iterating using Iterator is the best choice to avoid ConcurrentModificationException,but if you are not removing any element and just doing some operation with each element than enhanced for loop is much cleaner ways to do that. The main advantage of using enhanced for loop over Iterator is that you don't need to check for the next element like you need to in the case of Iterator, Java 5 advanced for loop keeps track of size. Also, the code is very clean with no boilerplate. But, like everything else in the world, you won't get all benefits, you do have some limitations while loop through a List using enhanced for loop, as shown here. With the enhanced for loop, you can not modify selective objects as you don't have an index with you. If you want to selective modify only certain objects then your best bet is to use the traditional for loop which keeps track of indexes. The third choice is very straightforward, if you are running on Java SE 8 version then there is no reason for not using the forEach() method for looping through a List in Java. It's lazy and allows you to perform some filtering operation on the stream before fetching an element from the list. The laziness comes from the Stream class itself. You can check outTheComplete Java Masterclassto learn more about the performance benefits provided by lambda expression and stream in Java 8. 3 Examples of looping through a List in JavaHere is a sample Java program that demonstrates How to loop through aList in Java in three different ways, Iterator, for-each loop, and traditional for loop. This technique can be used to loop throughArrayList or any other index-based List implementation like Vector. The other two methods like Iterator and enhanced for loop can be used along with any Collection class like HashSet, TreeSet, LinkedHashSet, etc. They are actually the standard way to iterate through the collection in Java. The traditional for loop approach is only possible and efficient because of the index-based nature of the List interface, but if you use this with a linked list then you will get worse performance because in LinkedListaccessing an element with an index is O(n) operation rather than O(1) operation. This is also the fundamental difference between an ArrayList and LinkedList in Java. The new method of iterating over a list using the forEach() method is only available in Java SE 8 and I recommend you to read this article to learn how to loop through a list using the forEach()method in Java 8 before you start using them. Btw, Java SE 8 is full of exciting and more powerful features and it's essential for a Java developer to learn those features, given it's the most popular Java version. If you are interested, you should follow a good Java 8 course likeWhat's New in Java 8 on Pluralsight to learn quickly. Alternatively, you can always choose the one from this list of good Java 8 books, earlier published by me. How to loop over a List in JavaHere is our complete Java program to show you all three ways to loop over a list in Java. You can use these methods to loop over any List like ArrayList, LinkedList, or even Vector in Java. package example; 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 examples in this program, * first examples show 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 over * 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> languages = Arrays.asList("Java", "C++", "Scala", "Groovy"); //Getting Iterator from List in Java Iterator<String> 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 a foreach loop System.out.println("Looping List in Java using a 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<languages.size(); i++){ System.out.printf("programming language #%d in List is : %s %n", i, languages.get(i) ); } } } Output: Iterating List in Java using Iterator The current element in List is London The current element in List is Tokyo The current element in List is NewYork The current element in List in Mumbai Looping List in Java using a 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 Thats all on How to iterate or loop over aList in Java. In this Java tutorial, we have seen an example of all three ways of looping List in Java. the first example demonstrates the use of Iterator with List, the second use for loop for looping over List, and the third example uses traditional old for a loop. All this technique can be applied to any index-based List implementation including ArrayList and Vector in Java. Further Learning TheComplete Java Masterclass Java Fundamentals: Collections Java Programming Interview Exposed by Markham Other Java Collection Articlesyou may like
Thanks for reading this article so far. If you like this article then please share it with your friends and colleagues. If you have any questions or feedback then please drop a note. P. S. -If you are keen to learn Java Programming in-depth but looking for free online courses then you can also check outJava Tutorial for Complete Beginners (FREE)course on Udemy. It's completely free and you just need an Udemy account to join this course.
|