【发布时间】:2020-05-06 12:21:56
【问题描述】:
我有一个List<String>,它代表另一个列表中的项目的 ID(可以重复),这是一个 List<Cheat>,其中每个 Cheat 都有一个字符串 ID 和一个 List<Integer> RNG。两者都有 Cheat 中的访问器方法。
我需要将此 ID 列表转换为我已为其提供 ID 的每个 Cheat 的 RNG 列表。
例如,我可以有 3 个秘籍:
1:{ID:1, RNG:{1,2,3}}
2:{ID:2, RNG{1,2}}
3:{ID:3, RNG:{1}}
以及以下 ID 的列表:
{3,1,1,2}.
我需要最终得到 {1,1,2,3,1,2,3,1,2} 的最终列表,即作弊 3 的 RNG,然后是作弊 1 的 RNG,然后再次是作弊1的RNG,最后是作弊2的RNG。
如果有人可以帮助我,将不胜感激。谢谢。
我尝试过但失败了:
ImmutableList<Integer> sequenceRngs = cheatIds.stream()
.map(s -> cheats.stream()
.filter(cheat -> cheat.getId().equals(s))
.findFirst()
.map(cheat -> cheat.getRng()))
.flatMap(cheat -> cheat.getRng())
.collect(ListUtils.toImmutableList());
【问题讨论】:
-
你能补充一下你目前尝试过的吗?
标签: java list functional-programming java-stream