将 String、List 的 Map 连接成一个不包括 String 的 List

Join a Map of String, List into a single List excluding the String

我有一个Map<String, List<MyObject> myMap。如何将所有列表值合并为一个 List<MyObject>,不包括字符串键?

我试过这个

List<MyObject> list = new ArrayList<MyObject>(myMap.values())

但这不适用于集合。

还考虑过迭代地图并将每个列表加入一个新列表,但希望有更好的方法。

这是一种可能的流方式

map.values().stream().flatMap(Collection::stream).collect(Collectors.toList())

我有一个样本,可能对你有帮助:

    public class App {
    
        public static void main(String[] args) {
            test();
        }
    
        private static void test() {
            Map<String, List<Test>> map = new HashMap<>();
            List<Test> test = new ArrayList<>();
            test.add(new Test(1, "AAA"));
            test.add(new Test(2, "BBB"));
            map.put("A", test);
            test = new ArrayList<>();
            test.add(new Test(3, "CCC"));
            test.add(new Test(4, "DDD"));
            map.put("B", test);
    
            System.out.println(map);
            List<Test> testList = new ArrayList<>();
            map.values().stream().forEach(tests -> tests.forEach(testData -> testList.add(testData)));
            System.out.println(testList);
        }
    }

class Test {
    private int id;
    private String name;

    //getter setters
}