Converting a List to String in Java

1. Introduction

In this quick article, we’ll have a look at how to convert a List of elements to a String. This might be useful in certain scenarios like printing the contents to the console in a human-readable form for inspection/debugging.

2. Standard toString() on a List

One of the simplest ways is to simply call the toString() method on the List:

@Test
public void whenListToString_thenPrintDefault() {
    List<Integer> intLIst = Arrays.asList(1, 2, 3);
 
    System.out.println(intLIst);
}

Output:

[1, 2, 3]

This technique internally utilizes the toString() method of the type of the elements within the List. In our case, we are using the Integer type which has a proper implementation of the toString() method.

If we are using our custom type, say, Person, then we need to make sure that the Person class overrides the toString() method and does not rely on the default implementation. If the toString() method is not properly implemented, you might get unexpected results:

[org.baeldung.java.lists.ListToSTring$Person@1edf1c96,
  org.baeldung.java.lists.ListToSTring$Person@368102c8,
  org.baeldung.java.lists.ListToSTring$Person@6996db8]

3. Custom Implementation Using Collectors

Often, we might need to display the output in a different format.

Compared to the previous example, let’s replace the comma (,) with a hyphen (-) and the square brackets ([, ]) with a set of curly braces ({, }):

@Test
public void whenCollectorsJoining_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
    String result = intList.stream()
      .map(n -> String.valueOf(n))
      .collect(Collectors.joining("-", "{", "}"));
 
    System.out.println(result);
}

Output:

{1-2-3}

The Collectors.joining() method requires a CharSequence, so we need to map the Integer to String. The same idea can be utilized in case of any other class even when we do not have the access to the code of that class.

4. Using an External Library

We’ll now see the usage of Apache Commons’ StringUtils class to achieve the similar results.

4.1. Maven Dependency

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

The latest version of the dependency can be found here.

4.2. Implementation

The implementation is literally a single method call:

@Test
public void whenStringUtilsJoin_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
 
    System.out.println(StringUtils.join(intList, "|"));
}

Output:

1|2|3

Again, this implementation is internally dependent on the toString() implementation of the type we are considering.

5. Conclusion

In this article, we saw how easy it is to convert a List to a String using different techniques.

As always, the full source code for this article can be found over on GitHub.

Related posts:

Python String isdigit()
A Guide to System.exit()
Java Program to Implement Weight Balanced Tree
Spring Security OAuth2 – Simple Token Revocation
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
An Introduction to Java.util.Hashtable Class
Guide to java.util.concurrent.Locks
Python Program to Randomly Select an Element From the List
ClassNotFoundException vs NoClassDefFoundError
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
HttpClient 4 – Send Custom Cookie
Concrete Class in Java
Optional trong Java 8
Spring Boot Integration Testing with Embedded MongoDB
Logout in an OAuth Secured Application
Java – Random Long, Float, Integer and Double
Java Program to Implement Patricia Trie
Java Convenience Factory Methods for Collections
Python Program to Get the Last Element of the List
Simplify the DAO with Spring and Java Generics
Java Program to Create a Random Linear Extension for a DAG
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Java Program to implement Dynamic Array
Hướng dẫn Java Design Pattern – Template Method
Count Occurrences of a Char in a String
Java Program to Implement Knapsack Algorithm
Receive email using POP3
Spring Boot - Exception Handling
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
A Guide to Apache Commons Collections CollectionUtils
Guide to Java 8 groupingBy Collector