如何使用 Lambda 在 Java 中将列表列表转换为哈希集

Vik*_*pta 0 java lambda

我有一个包含用户数据的类。

public class UserData {
    @JsonProperty("uid")
    private String userId;

    @JsonProperty("cities")
    private List<Integer> cities;

}
Run Code Online (Sandbox Code Playgroud)

List<UserData>,我想提取所有独特的城市。改变,我正在为此做,

Set<Integer> citiesList = new HashSet<>();

for (UserData userData : userDataList)
       citiesList.addAll(userData.getCities());
Run Code Online (Sandbox Code Playgroud)

lambda这些变化的表达方式是什么?

任何帮助将非常感激。

Kar*_*cki 8

感觉你应该使用.flatMap()withList.stream()操作,而不是特定的 lambda 表达式:

Set<Integer> citiesList = userDataList.stream()
  .map(UserData::getCities)
  .flatMap(List::stream)
  .collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)