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

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

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

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

}

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

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

for (UserData userData : userDataList)
       citiesList.addAll(userData.getCities());

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

任何帮助将非常感激。

回答

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

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


以上是如何使用Lambda在Java中将列表列表转换为哈希集的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>