そういえば,Javaでは拡張for文があったなぁ

int[] xs = new int[10];
// ...
for (int i = 0; i < 10; i++)
    System.out.println(xs[i]);

というfor文が

int[] xs = new int[10];
// ...
for (int x: xs)
    System.out.println(x);

と記述できる.これは良い.
ただ,値を書き換えることはできないみたい.

import java.util.*;

public class ForLoop {
    public static void main(String[] args) {
        int[] xs = new int[3];
        for (int x: xs) System.out.println(x);
        for (int x: xs) x++;
        for (int x: xs) System.out.println(x);
    }
}

出力

0
0
0
0
0
0

参照をもっているのではなく,値をもっているんですかね.