1. Overview
This short article will show how to convert the values of a Map to an Array, a List or a Set using plain Java as well as a quick Guava based example.
This article is part of the “Java – Back to Basic” series here on Baeldung.
Learn different ways of iterating through the entries of a Map in Java.
Learn about the differences between map() and flatMap() by analyzing some examples of Streams and Optionals.
A quick and practical guide to handling duplicate keys by using multimaps in Java.
2. Map Values to Array
First, let's look at converting the values of the Map into an array, using plain java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToArray_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Collection<String> values = sourceMap.values();
String[] targetArray = values.toArray(new String[0]);
}
Note, that toArray(new T[0]) is the preferred way to use the method over the toArray(new T[size]). As Aleksey Shipilëv proves in his blog post, it seems faster, safer, and cleaner.
3. Map Values to List
Next, let's convert the values of a Map to a List – using plain Java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = new ArrayList<>(sourceMap.values());
}
And using Guava:
@Test
public void givenUsingGuava_whenMapValuesConvertedToList_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
List<String> targetList = Lists.newArrayList(sourceMap.values());
}
4. Map Values to Set
Finally, let's convert the values of the Map to a Set, using plain java:
@Test
public void givenUsingCoreJava_whenMapValuesConvertedToS_thenCorrect() {
Map<Integer, String> sourceMap = createMap();
Set<String> targetSet = new HashSet<>(sourceMap.values());
}
5. Conclusion
As you can see, all conversions can be done with a single line, using only the Java standard collections library.
The implementation of all these examples and code snippets can be found over on GitHub project – this is a Maven-based project, so it should be easy to import and run as it is.
res – REST with Spring (eBook) (everywhere)