How to Convert String Array to List in Java
In this Java tutorial, we will learn how to convert a String array into a List using both traditional Java and Java 8.
For example:
String Array : {"Java", "Python", "C++", "JavaScript"}
List : [Java, Python, C++, JavaScript]
1. Traditional Java Program
The Arrays.asList() method can be used to convert a String array into a List.
import java.util.Arrays;
import java.util.List;
public class StringArrayToList {
public static void main(String[] args) {
String[] array = {"Java", "Python", "C++", "JavaScript"};
List<String> list = Arrays.asList(array);
System.out.println("String Array: "
+ Arrays.toString(array));
System.out.println("List: " + list);
}
}
Output
String Array: [Java, Python, C++, JavaScript]
List: [Java, Python, C++, JavaScript]
Explanation
The Arrays.asList() method converts the array into a List:
List<String> list = Arrays.asList(array);
Here, array is a String array and list is a List<String>.
Important Note
The List returned by Arrays.asList() is fixed-size. You can change an existing element, but you cannot add or remove elements.
For example:
list.set(0, "C");
is allowed, but:
list.add("HTML");
will throw UnsupportedOperationException.
If you need a modifiable List, use:
List<String> list = new ArrayList<>(Arrays.asList(array));
2. Java 8 Program
Java 8 introduced the Stream API, which provides another way to convert an array into a List.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StringArrayToListJava8 {
public static void main(String[] args) {
String[] array = {"Java", "Python", "C++", "JavaScript"};
List<String> list = Arrays.stream(array)
.collect(Collectors.toList());
System.out.println("String Array: "
+ Arrays.toString(array));
System.out.println("List: " + list);
}
}
Output
String Array: [Java, Python, C++, JavaScript]
List: [Java, Python, C++, JavaScript]
Explanation of Java 8 Program
First, we convert the array into a Stream:
Arrays.stream(array)
Then, collect() collects the stream elements into a List:
.collect(Collectors.toList())
The complete statement is:
List<String> list = Arrays.stream(array)
.collect(Collectors.toList());
This is a common Java 8 approach when you also want to filter, transform, or process the array elements while creating the List.
3. Java 8 Using Arrays.asList()
It is also important to understand that Arrays.asList() works perfectly in Java 8:
String[] array = {"Java", "Python", "C++", "JavaScript"};
List<String> list = Arrays.asList(array);
You do not need Streams just because you are using Java 8.
Difference Between the Approaches
| Feature | Traditional Java | Java 8 Stream |
|---|---|---|
| Method | Arrays.asList() | Arrays.stream() |
| Stream API | No | Yes |
| Lambda required | No | No |
| Simple conversion | Excellent | Good |
| Filtering/processing | Less convenient | Excellent |
| Java Version | Java 5+ | Java 8+ |
Which Method Should You Use?
If your only requirement is to convert a String array to a List, the simplest approach is:
List<String> list = Arrays.asList(array);
If you need to filter or modify elements while converting, Java 8 Streams are useful:
List<String> list = Arrays.stream(array)
.filter(s -> s.length() > 4)
.collect(Collectors.toList());
For example, the above code creates a List containing only Strings with more than four characters.
Conclusion
Converting a String array to a List is simple in Java. Arrays.asList() is the easiest option for a direct conversion, while the Java 8 Stream API is useful when additional processing such as filtering or transformation is required.