Core Java

Java – How to Convert Java Array to Iterable?

A quick guide to convert an array to iterable in java using Stream api with examples programs in two ways.

1. Overview

In this tutorial, We will learn how to convert java array to iterable in different ways with example programs.

First we will go thorough the basic one how to iterate over the array values. Next, how to convert the array to Iterable using legacy java api and finally using java 8 api for java array iterator.

Bonus section on how to convert string to iterable with a delimiter.

2. Create a iterator over the array using loops

Running a for loop over a array to create iterable logic to get the each value from array based on the index.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.javaprogramto.arrays.toiterabale;
 
/**
 *
 * Array Iterate example using loops
 *
 * @author javaprogramto.com
 *
 */
public class ArrayIterate {
 
    public static void main(String[] args) {
 
        // string array
        String[] names = new String[] {"john", "Amal", "Paul"};
         
        // iterating array over its values.
        for(int index=0; index< names.length ; index++) {
            System.out.println(names[index]);
        }
    }
}

Output:

1
2
3
john
Amal
Paul

3. Convert Java Array to Iterable using legacy java before JDK 8

First we will convert the array to list using Arrays.asList() method. Next, convert list to Iterable in java using
list.iterator() method.

Finally, iterate the iterator over the while loop to get the all the values.

Array to Iterable Example:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.javaprogramto.arrays.toiterabale;
 
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
 
/**
 *
 * Example to convert Java Array to Iterable before Java 8
 *
 * @author javaprogramto.com
 *
 */
public class JavaArrayToIterableExample {
 
    public static void main(String[] args) {
 
        // string array
        String[] names = new String[] {"john", "Amal", "Paul"};
         
        // string array to list conversion
        List<String> namesList = Arrays.asList(names);
         
        // List to iterable
        Iterator<String> it = namesList.iterator();
         
        // printing each value from iterator.
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

Output:

1
2
3
john
Amal
Paul

4. Convert Java Array to Iterable Using Java 8 Stream

In the above section, we called Arrays.asList() method to convert the array to List. But, now will use another method from java 8 stream api Arrays.stream(array) method which takes input array and returns a Stream of array type.

Arrays.stream() method provides the arrays to access the stream api and use the power of parallel execution on larger arrays.

But for now, after getting the Stream<String> object then you need to call the iterator() method on stream to convert Stream to iterable.

Do not worry, if you are new to the java 8, the below program is break down into multiple steps. And also provided a single line solution.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.util.Arrays;
import java.util.Iterator;
import java.util.stream.Stream;
 
/**
 *
 * Example to convert Java Array to Iterable using Java 8 Arrays.stream()
 *
 * @author javaprogramto.com
 *
 */
public class JavaArrayToIterableExampleJava8 {
 
    public static void main(String[] args) {
 
        // string array
        String[] names = new String[] {"john", "Amal", "Paul"};
 
        System.out.println("Multi line solution");
        // Convert string array to Stream<String>
        Stream<String> namesList = Arrays.stream(names);
         
        // Stream to iterable
        Iterator<String> it = namesList.iterator();
         
        // printing each value from iterator.
        while(it.hasNext()) {
            System.out.println(it.next());
        }
         
        // singel line
        System.out.println("\nIn single line");
        Arrays.stream(names).iterator().forEachRemaining(name -> System.out.println(name));
    }
}

Multiline and single line solutions provide the same output. If you are going to use in the realtime project then use it as single line statement as you want to fell like expert and take the advantage of stream power.

1
2
3
4
5
6
7
8
9
Multi line solution
john
Amal
Paul
 
In single line
john
Amal
Paul

5. Bonus – Convert String to Iterable

Applying iterable on string is quite simple if you have understood the above code correctly. What we need is now to convert the String to String array with space or if the string has any delimiter.

After getting the string array then apply the same logic as java 8 streams as below.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class JavaStringToIterableExampleJava9 {
 
    public static void main(String[] args) {
 
        // string
        String numbers = "1 2 3 4 5 6";
 
        // string to string array
        String[] numbersArray = numbers.split(" ");
 
        System.out.println("Multi line solution");
        // Convert string array to Stream<String>
        Stream<String> numbersList = Arrays.stream(numbersArray);
         
        // Stream to iterable
        Iterator<String> it = numbersList.iterator();
         
        // printing each value from iterator.
        while(it.hasNext()) {
            System.out.println(it.next());
        }
         
        // singel line
        System.out.println("\nIn single line");
        Arrays.stream(numbersArray).iterator().forEachRemaining(name -> System.out.println(name));
    }
}

Output:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
Multi line solution
1
2
3
4
5
6
 
In single line
1
2
3
4
5
6

6. Conclusion

In this article, you’ve seen how to convert the Array to iterable and get the each value from iterator using legacy and new java 8 api.

And also how to convert String to Iterable in java?

GitHub

Iterable API

Published on Java Code Geeks with permission by Venkatesh Nukala, partner at our JCG program. See the original article here: Java – How to Convert Java Array to Iterable?

Opinions expressed by Java Code Geeks contributors are their own.

Venkatesh Nukala

Venkatesh Nukala is a Software Engineer working for Online Payments Industry Leading company. In my free time, I would love to spend time with family and write articles on technical blogs. More on JavaProgramTo.com
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button