У меня есть List<String>
, который представляет идентификаторы (могут быть повторены), элементов из другого списка, который является List<Cheat>
, где у каждого Чита есть String ID и List<Integer> RNG
. Оба имеют методы доступа в Cheat.
Мне нужно преобразовать этот список ID в список RNG для каждого Cheat, для которого мне был предоставлен ID.
Например, я может иметь 3 чита:
1:{ID:1, RNG:{1,2,3}}
2:{ID:2, RNG{1,2}}
3:{ID:3, RNG:{1}}
и список идентификаторов:
{3,1,1,2}.
Мне нужно будет получить окончательный список {1,1,2,3, 1,2,3,1,2}, то есть ГСЧ Чит 3, затем ГСЧ чит 1, затем ГСЧ чит 1 снова, и, наконец, ГСЧ чит 2.
Если кто-нибудь может помочь мне, это будет оценено. Спасибо.
Я пробовал и не смог:
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());