Как лучше всего преобразовать Список в другой Список (например, в форме List<T> into another List<Pair<L,R>>
), как показано на схеме:

Как показано, существует список источников, который является List<UserModel>
, который по существу содержит UserModel
с методом getUserId()
, этот список может быть либо пустым, содержит один или несколько элементов), поэтому он является произвольным. Цель состоит в том, чтобы создать еще один список, в котором он будет содержать пару идентификаторов пользователя строки.
Вот код, обозначающий проблему;
List<UserModel> models= getUsers();
List<UserRenderModel> renderModels = new LinkedList<>();
IntStream.range(0, models)
.forEach(idx -> {
UserRenderModel renderModel = new UserRenderModel();
UserModel dataModel = models.get(idx);
if(idx % 2 == 0) {
renderModel.setLeftUserId(dataModel.getUserId());
} else {
renderModel.setRightUserId(dataModel.getUserId());
}
renderModels.add(renderModel);
}
);
В этом коде вы можете видеть, что если у нас есть UserModel
с двумя объектами в коллекции, он создаст два UserRenderModel
, которые будут добавлены в коллекцию renderModels, что неверно, тогда как это должен быть только один UserRenderModel