Explain Codes LogoExplain Codes Logo

Java: convert List to a join()d String

java
string-concatenation
stream-api
java-8-features
Nikita BarsukovbyNikita Barsukov·Nov 6, 2024
TLDR

To convert a List<String> into a single String in Java 8, use String.join(). Example of this magic trick:

List<String> list = Arrays.asList("foo", "bar", "baz"); String joined = String.join(", ", list); // "foo, bar, baz", voilà!

Here, the delimiter is ", " and the list is the collection you want to merge.

But wait, there's more! Let's boost the fun and deal with a non-String list:

List<Object> objects = Arrays.asList(1, "Alohomora", '!', true); String summonSpell = objects.stream() .map(Object::toString) .collect(Collectors.joining(" ")); // unlocks restricted classes 🎓

Here we go! Nos champion, let's move on.

Delving into the world of List to String conversion

String.Join: The Java 8 Wizardry

Leverage String.join() to swiftly craft strings out of List<String>. Spare the StringBuilder for more complex tasks.

Stream API: Alchemy for non-String Lists

Transmute List<Non-String> into List<String> with map().collect(Collectors.joining()), narrative from our friend philosopher's stone.

For our Time-Turner users – Pre-Java 8

Fear not! Apache Commons Lang's StringUtils.join() bestows the power of concatenation on thee.

Greetings, Android Developers

For you, we have TextUtils.join(). It's the android way!

Guava’s Concoctions: Sip in the syrup of Joiners

Featuring null management, fluent map joining. Guava's Joiner is pure magic potion.

Spring Framework Charm: Blooming join in Collections

Calling all Spring developers, StringUtils.collectionToDelimitedString() found in the secret garden of Spring.

The Crafting Tactics: Getting the grip on the broomstick

Let’s ride into some practical enchantments.

The Elders: StringBuilder

For the hardcore potion makers who want to control every single drop, there is StringBuilder.

The Fairy Dust: Delimiter optimization

Sprinkle a little optimization in your code by smart usage of delimiters.