Jika kita menggunakan sesebuah data structure, kebiasaannya akan ada proses yang kita perlu buat kepada semua data di dalam data structure tersebut. Untuk mengakses semua data, kita boleh menggunakan loop seperti berikut:

package datastructure;

public class ContohForEachLoop {
    public static void main(String[] args) {
        String[] names = {"John", "Jack", "Jill", "Jackson"};

        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
    }
}

Satu lagi cara adalah dengan menggunakan for each loop:

package datastructure;

public class ContohForEachLoop {
    public static void main(String[] args) {
        String[] names = {"John", "Jack", "Jill", "Jackson"};

        for (String name : names) {
            System.out.println(name);
        }
    }
}

For each loop akan akses semua data tanpa perlu meletakkan nombor indeks. Ini bagi memudahkan programmer lain. Jika nampak for each loop sahaja sudah tahu bahawa loop tersebut akan akses semua data dalam sesebuah data structure.

Antara kelemahannya ialah for each loop tidak boleh akses dua data pada satu masa. Contoh jika menggunakan loop biasa:

package datastructure;

public class ContohForEachLoop {
    public static void main(String[] args) {
        String[] names = {"John", "Jack", "Jill", "Jackson"};

        for (int i = 0; i < names.length - 1; i++) {
            System.out.println(names[i] + " " + names[i + 1]);
        }
    }
}