在java中按另一个列表过滤列表

问题描述

我有 2 个列表,第一个是带有 ID 的整数列表,第二个是带有一些数据的地图列表。我需要使用第一个整数列表中的 ID 过滤地图列表。我该怎么做?

示例:

        ObjectMapper mapper = new ObjectMapper();

        List<Map> projects = mapper.readValue(projectsList(scenarioName),List.class);
        List<Map> scenarioList = mapper.readValue(scenarioList(),List.class);

        Map scenario = scenarioList.stream().filter(s -> s.get("name").equals(scenarioName)).findFirst().get();
        List<Map> portfolios = (List) scenario.get("portfolios");
        List<Integer> portfolioProjectIds = (List<Integer>) portfolios.stream().map(m -> m.get("projectIds")).collect(Collectors.toList()).get(0);

        for (Integer id : portfolioProjectIds) {
            List<Map> filteredProjects = projects.stream().filter(e -> e.get("id").equals(id)).collect(Collectors.toList());
        }

portfolioProjectIds 的输出:[1,2,3,4,5,...]

项目输出:[{id:1,name:project1,date:xxxx,...},{id:2,name:project2,{...}]

所以我需要项目中的每个项目,这些项目的值来自于投资组合项目Ids作为id

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)