【发布时间】:2021-10-31 22:24:58
【问题描述】:
有没有办法实现以下示例代码,利用 Java Stream API 而不必创建 HashMap 并将其填充到双 forEaches 中?我试图玩弄groupingBy 和flatMap,但找不到出路。
有一个电影列表,其中每一个都有一个流派列表(字符串)...
class Movie {
List<String> genres;
}
List<Movie> movies = new ArrayList<>();
...我想按类型对所有电影进行分组
Map<String, List<Movie>> moviesByGenre = new HashMap();
movies.stream()
.forEach(movie -> movie.getGenres()
.stream()
.forEach(genre -> moviesByGenre
.computeIfAbsent(genre, k -> new ArrayList<>())
.add(movie)));
【问题讨论】:
标签: java java-stream