列挙子の実装を反復子のインタフェイスで扱う #5

使ってみる。
以前と同じくダイアモンドを使っているのでJDK6では型を明記しないといけない。

...snip
        for (String s : iterable(new java.util.Vector<>(java.util.Arrays.asList("Alice", "Bob", "Carol")).elements())) {
            System.out.println(s);
        }
...snip
        for (String s : iterable(new String[]{"Alice", "Bob", "Carol"})) {
            System.out.println(s);
        }
...snip

何だかメソッドの使いどころを間違っている気もする。
特に配列に関しては、

        for (String s : new String[]{"Alice", "Bob", "Carol"}) {
            System.out.println(s);
        }

で十分なわけで、無理に書くならIteratorを明示的に使うような例を示すべきか?

        for (
            Iterator<String> i = iterable(new String[]{"Alice", "Bob", "Carol"}).iterator();
            i.hasNext();
        ) {
            System.out.println(i.next());
        }

これもどうかと思うけれど。