Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use a for-loop or a for-each loop? [closed]

Should we prefer the for-each loop instead of the traditional for-loops? Is the while-loop advantageous?

List<String> names = Arrays.asList("John", "Jeff", "Mary", "Elise");

//for-each loop
for(String name: names){
    log(name);
}

//traditional for-loop
for(int index=0; index < 10; ++index){
    log(names.get(index));
}

//Iterator while
Iterator<String> iter1 = names.iterator();
while (iter1.hasNext()) {
    log(iter1.next());
}

//Iterator for loop
for(Iterator<String> iter2 = names.iterator(); iter2.hasNext();){
    log(iter2.next());
}

What is the best flavor to use?

like image 898
Dimitri Dewaele Avatar asked Mar 12 '26 06:03

Dimitri Dewaele


1 Answers

Are are same. But some case one is more favourable then others

Case 1:

//for-each loop
for(String name: names){
    log(name);
}

Favourable :

  • When you want to iterate over collection
  • no adding or deletion over array.
  • No need of index of item you iterate

Case 2:

//traditional for-loop
for(int index=0; index < 10; ++index){
    log(names.get(index));
}

Favourable :

  • When you want to iterate over collection
  • you need to work on index of item you iterate. So for that you always have value of index you currently on.

Case 3:

Iterator<String> iter1 = names.iterator();
while (iter1.hasNext()) {
    log(iter1.next());
}

and

//Iterator for loop
for(Iterator<String> iter2 = names.iterator(); iter2.hasNext();){
    log(iter2.next());
}

Favourable :

  • When you want to iterate over collection
  • Addition or deletion take ||ly while iterating.
like image 169
Ashish Aggarwal Avatar answered Mar 13 '26 19:03

Ashish Aggarwal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!