Java 17 Map to List

Program that convert from Map to List in several ways.

There are several cases based on the desired result:

  • List contain Map.Entry.
  • List is created from the map keys only. In this example Integer keys
  • List is created from the map values. In this example it is String list
  • List which is created from map steam use Stream.map method to custom created record Elements.
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

// Java 17 record. Just simplified java POJO
// For simplicity we add it here. Normally for each
// class and record new file with the same name
// should be created
record Element(Integer k, String v) {};


public class MainConvertMapToList {
    public static void main(String[] args) {

        Map<Integer, String> map = Map.of(1, "A", 2, "B", 3, "C");

        // Create list with map entries
        List<Map.Entry<Integer, String>> listMapEntries = map.entrySet().stream().toList();
        System.out.println("List with map entries: " + listMapEntries);

        // Create list only with map Keys
        List<Integer> listWithMapKeys = map.keySet().stream().toList();
        System.out.println("List only with map keys: " + listWithMapKeys);

        // Create list only with map values
        List<String> listWithMapValues = map.values().stream().toList();
        System.out.println("List only with map values: " + listWithMapValues);

        // map and create objects from Element and add the to list
        List<Element> listWithCustomElements = map
                .entrySet()
                .stream()
                .map((entry) -> new Element(entry.getKey(), entry.getValue()))
                .collect(Collectors.toList());

        System.out.println("List with Elements objects with map data:" + listWithCustomElements);
    }
}

Output:

List with map entries: [1=A, 2=B, 3=C]
List only with map keys: [1, 2, 3]
List only with map values: [A, B, C]
List with Elements objects with map data:[Element[k=1, v=A], Element[k=2, v=B], Element[k=3, v=C]]

Leave a Comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.