How to Convert a Map to List in Java


Suppose we want to convert a Java hashmap into a list.

Let’s assuming this is our map.

Map<Key, Value> map;

Our list will either hold all the keys in that map, or all the values in that map.

Creating a List of Map Keys

To obtain the keys of a map, we can use Map.keySet().

This returns a Set<Key>, but we can easily create a list from a set in Java using the ArrayList constructor.

List<Key> listOfKeys = new ArrayList<Key>(map.keySet());

Creating a List of Map Values

To obtain the values of a map, we can use Map.values().

This returns a Collection<Key>, but we can also create a list from a Collection using the constructor.

List<Value> listOfValues = new ArrayList<Value>(map.values());

Using the Stream API

If we’re using Java 8+, we have access to the Stream API.

List<Key> listOfKeys = map.keySet().stream().collect(Collectors.toList());
List<Value> listOfValues = map.values().stream().collect(Collectors.toList());