Convert Java Array to Iterable
Integer foo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };List<Integer> list = Arrays.asList(foo);// orIterable<Integer> iterable = Arrays.asList(foo);
Though you need to use an Integer
array (not an int
array) for this to work.
For primitives, you can use guava:
Iterable<Integer> fooBar = Ints.asList(foo);
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>15.0</version> <type>jar</type></dependency>
For Java8 with lambdas: (Inspired by Jin Kwon's answer)
final int[] arr = { 1, 2, 3 };final Iterable<Integer> i1 = () -> Arrays.stream(arr).iterator();final Iterable<Integer> i2 = () -> IntStream.of(arr).iterator();final Iterable<Integer> i3 = () -> IntStream.of(arr).boxed().iterator();
just my 2 cents:
final int a[] = {1,2,3};java.lang.Iterable<Integer> aIterable=new Iterable<Integer>() { public Iterator<Integer> iterator() { return new Iterator<Integer>() { private int pos=0; public boolean hasNext() { return a.length>pos; } public Integer next() { return a[pos++]; } public void remove() { throw new UnsupportedOperationException("Cannot remove an element of an array."); } }; }};