Я столкнулся с проблемой, когда цикл Java 8 for-each не сохраняет порядок при печати данных.
По сути, я печатаю Список Наборов. Порядок списка не распечатывается по порядку.
Пожалуйста, предложите, если я могу заказать вывод, не меняя его на базовый для каждого цикла.
Пример кода:
AtomicInteger row = new AtomicInteger(1);
//entities is a List
entities.forEach(entity -> {
if (Optional.ofNullable(entity.getSet()).isPresent()) {
entity.getSet().forEach(obj -> {
try {
int column = 0;
addData(sheet, column++, row, nullToBlankString(entity.getName()));
addData(sheet, column++, row, convertLongToString(obj.getLegNumber()));
addData(sheet, column++, row, nullToBlankString(obj.getType()));
} catch (WriteException e) {
logger.error("Exception" + e.getCause().getMessage());
}
row.getAndIncrement();
});
}
});
private void addData(WritableSheet sheet, int column, AtomicInteger row, String s)
throws RowsExceededException, WriteException {
Label label;
label = new Label(column, row.get(), s, times);
sheet.addCell(label);
}
Токовый выход:
Он печатает вывод без заказа.
Ожидаемый результат:
Следует печатать строки в порядке номера LEG