1. Introduction
In this tutorial, We'll learn how to convert List to Array in java. We are going to show the example programs using List, java 8 and Guava API methods.
2. List.toArray()
List is an interface in java that has a utility method List.toArray() which converts List to Array in a simple way. toArray() method returns Object array Object[]. This converted array will have all the elements of a list with proper sequence from first to the last element.
package com.java.w3schools.blog.list; import java.util.ArrayList; import java.util.List; public class ListToArrayExamples { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Raghu"); names.add("Raja"); names.add("Ramu"); names.add("Paul"); names.add("Penum"); // converting list of string into string[] array. String[] strArray = (String[]) names.toArray(); System.out.println(strArray); } }
Output:
Exception in thread "main" java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.String; ([Ljava.lang.Object; and [Ljava.lang.String; are in module java.base of loader 'bootstrap') at com.java.w3schools.blog.list.ListToArrayExamples.main(ListToArrayExamples.java:19)
To get the exact type what List is storing, Need to follow T[] toArray(T[] a) method as below.
String[] stringArrayFromList = names.toArray(new String[names.size()]); System.out.println("Printing the converted array values : "); for (String value : stringArrayFromList) { System.out.println(value); }
Printing the converted array values : Raghu Raja Ramu Paul Penum
String[] stringArray = names.toArray(new String[0]); System.out.println("with string array size 0 : "); for (String value : stringArray) { System.out.println(value); }
Output:
with string array size 0 : Raghu Raja Ramu Paul Penum
3. Java 8 Stream API
List to Array conversion can be done using java 8 stream api. List has a method to convert list to stream using List.stream() and next invoke Stream.toArray() method.
<A> A[] toArray(IntFunction<A[]> generator);
3.1 Using Method References
package com.java.w3schools.blog.list; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class Java8StreamsToListToArrayExamples { public static void main(String[] args) { List<String> fruites = new ArrayList<>(); fruites.add("kiwi"); fruites.add("jack fruit"); fruites.add("apple"); fruites.add("Mango"); fruites.add("Strawberry"); Stream<String> stream = fruites.stream(); String[] fruitesArray = stream.toArray(String[]::new); for (String fruit : fruitesArray) { System.out.println(fruit); } } }
Output:
kiwi
jack fruit
apple
Mango
Strawberry
3.2 Using Lambda Expression
The below lambda expression program generates the same output as above.
String[] lamdaArray = fruites.stream().toArray(n -> new String[n]); for (String fruit : lamdaArray) { System.out.println(fruit); }
4. Guava API
Guava library also provided with classes FluentIterable and Iterables.
4.1 FluentIterable
List<String> list = Arrays.asList("kiwi", "jack fruit", "apple", "Mango", "Strawberry");
String[] stringArray = FluentIterable.from(list).toArray(String.class);
System.out.println(Arrays.toString(stringArray));
4.2 Iterables
List<String> list = Arrays.asList("kiwi", "jack fruit", "apple", "Mango", "Strawberry"); String[] stringArray = Iterables.toArray(list, String.class); System.out.println(Arrays.toString(stringArray));
5. Conclusion
In this article, We've seen how to convert List to Array in 3 ways. Based on your understanding, you can choose the right one.
If you do not understand, please leave your questions in the comments section.
GitHub Link 1
GitHub Link 2
List.toString()
Stream.toString()
Guava API
Guava FluentIterable
Guava Iterables
No comments:
Post a Comment
Please do not add any spam links in the comments section.