使用Stream将String 2D数组映射到新对象

问题描述 投票:0回答:1

我有一个POJO Traveler,其变量为字符串名称,字符串城市。我有一个像

这样的字符串数组
List<String[]>  events = Arrays
            .asList(new String[][] { { "Person A", "City 1" },{ "Person A", "City 1" }, { "Person A", "City 2" }, { "Person B", "City 1" },
                    { "Person B", "City 3" }, { "Person C", "City 2" }, { "Person C", "City 4" } });

我想要一张名称为键和城市列表的地图。

Map<String, List<String>> map = events.stream().map(traveller ->  Traveller :: new).collect(Collectors.groupingBy(Traveller::getName));

我无法映射到旅行者。有没有一种方法可以映射到旅行者并获得名称作为键和城市列表。

java list stream
1个回答
0
投票

在您的类中创建一个包含城市和名称的构造函数

具有名称的组
    分组的结果是Map<String, List<Traveller>>而不是Map<String, List<String>>
  • 但是,我不会采用创建events的方式,而是使用Traveller而不是List<String[]>
  • © www.soinside.com 2019 - 2024. All rights reserved.