Convert Java Array to Iterable Convert Java Array to Iterable arrays arrays

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.");            }        };    }};


With Java 8, you can do this.

final int[] arr = {1, 2, 3};final PrimitiveIterator.OfInt i1 = Arrays.stream(arr).iterator();final PrimitiveIterator.OfInt i2 = IntStream.of(arr).iterator();final Iterator<Integer> i3 = IntStream.of(arr).boxed().iterator();