Skip to content

Yet another programming solutions log

Sample bits from programming for the future generations.

Technologies Technologies
  • Algorithms and Data Structures
  • Java Tutorials
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Spock Framework Tutorial
  • Spring Framework
  • Bash Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Developer’s Tools
  • Productivity
  • About
Expand Search Form

Java foreach

farenda 2015-06-08 0

Problem:

How to use foreach loop (enhanced for) that came with Java 5?

Solution:

This short examples explain everything:

package com.farenda.solved;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class JavaSolved {

    private static int[] numbers = { 1, 2, 3 };
    private static List<String> objects
        = Arrays.asList(new String[] {"a", "b", "c"});
    private static List emptyList = Collections.emptyList();

    public static void main(String[] args) {
        // With arrays it uses "index" and array's length field to iterate:
        System.out.println("Iterating array: " + numbers);
        for (int x : numbers) {
            System.out.println(x);
        }

        // It works with any class implementing java.lang.Iterable,
        // so Lists, Sets, Maps, etc.
        // Underneath it uses an iterator:
        System.out.println("Iterating over Iterable: " + objects);
        for (String s : objects) {
            System.out.println(s);
        }

        // When Iterable or array is empty Java for-each daos nothing:
        System.out.println("Iterating over an empty Iterable: " + emptyList);
        for (Object o : emptyList) {
            System.out.println(o);
        }

        // For-each doesn't check if Array or Iterable is null and will
        // throw NullPointerException when given one!
    }
}

Using Java for-each loop doesn’t work when you want to modify (e.g. remove matching element) Iterable over which you are iterating. In such case you will need to use simple iterator.

Result:

Let’s compile and run the examples:

$> javac src/com/farenda/solved/*.java -d out
$> java -cp out com.farenda.solved.JavaSolved
Iterating array: [I@659e0bfd
1
2
3
Iterating over Iterable: [a, b, c]
a
b
c
Iterating over an empty Iterable: []
Share with the World!
Categories Java Tags java-basics
Previous: Spring Boot “Hello, World”
Next: Java Fibonacci

Recent Posts

  • Java 8 Date Time concepts
  • Maven dependency to local JAR
  • Caesar cipher in Java
  • Java casting trick
  • Java 8 flatMap practical example
  • Linked List – remove element
  • Linked List – insert element at position
  • Linked List add element at the end
  • Create Java Streams
  • Floyd Cycle detection in Java

Pages

  • About Farenda
  • Algorithms and Data Structures
  • Bash Tutorial
  • Bean Validation Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Java 8 Streams and Lambda Expressions Tutorial
  • Java Basics Tutorial
  • Java Collections Tutorial
  • Java Concurrency Tutorial
  • Java IO Tutorial
  • Java Tutorials
  • Java Util Tutorial
  • Java XML Tutorial
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Software Developer’s Tools
  • Spock Framework Tutorial
  • Spring Framework

Tags

algorithms bash bean-validation books clojure design-patterns embedmongo exercises git gof gradle groovy hateoas hsqldb i18n java java-basics java-collections java-concurrency java-io java-lang java-time java-util java-xml java8 java8-files junit linux lists log4j logging maven mongodb performance quartz refactoring regex rest slf4j solid spring spring-boot spring-core sql unit-tests

Yet another programming solutions log © 2022

sponsored