You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java8中如何借助lambda将嵌套Map转换为Movie对象列表

Java 8 嵌套Map转对象列表实现方案

你可以直接使用JDK 8内置的Stream API配合lambda表达式完成转换,无需引入第三方依赖,核心逻辑是通过flatMap做扁平化处理,代码如下:

import java.util.List;
import java.util.stream.Collectors;

// 已有嵌套Map结构:private Map<Integer, Map<Integer, Movie>> movies;
List<Movie> movieList = movies.values()
        .stream()
        // 传入lambda表达式处理内层Map,合并所有Movie实例的流
        .flatMap(innerMap -> innerMap.values().stream())
        .collect(Collectors.toList());

逻辑说明

  • 第一步调用movies.values()获取外层Map存储的所有内层Map<Integer, Movie>集合,避免处理不需要的外层key
  • 调用stream()将集合转为流对象后,使用flatMap方法传入lambda表达式,将每个内层Map的value(即所有Movie实例)拆分为单独的流,再合并为一个全局的Movie流
  • 最后调用collect(Collectors.toList())将流中的所有Movie对象收集为目标List结构

如果有额外处理需求,可在流处理环节追加对应操作:

  • 需去重:在flatMap后追加.distinct()
  • 需按规则过滤:在flatMap后追加.filter(movie -> /* 自定义过滤规则 */)
  • 需排序:在flatMap后追加.sorted(/* 自定义比较器 */)

内容的提问来源于stack exchange,提问作者Vimit Dhawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 05:39:02