Monday, July 12, 2021

Java – How to Convert Java Array to Iterable?

Oracle Java, Oracle Java Tutorial and Material, Oracle Java Exam Prep, Oracle Java Career, Oracle Java Preparation

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

Read More: 1Z0-808: Java SE 8 Programmer I

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.

package com.oraclejavacertified.arrays.toiterabale;

/**

 * 

 * Array Iterate example using loops

 * 

 */

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:

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:

package com.oraclejavacertified.arrays.toiterabale;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

/**

 * 

 * Example to convert Java Array to Iterable before Java 8

 * 

 */

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:

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.

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()

 * 

 */

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.

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.

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:

Multi line solution

1

2

3

4

5

6

In single line

1

2

3

4

5

6

Source: javacodegeeks.com

Related Posts

0 comments:

Post a Comment