列挙子の実装を反復子のインタフェイスで扱う #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()); }
これもどうかと思うけれど。