Цель состоит в том, чтобы отсканировать некоторые входные данные и в результате получить массив int.Поскольку мы не знаем конечного числа записей для массива, мы должны использовать что-то с переменной длиной для этой цели.Обычно это какой-то список List, но List не определен для int (или других примитивов), только для типов объектов, таких как Integer.Поэтому нам понадобится шаг преобразования после сбора чисел.
Начиная с Java 8, у нас есть Streams, и с этим проблему можно решить более напрямую:
String section_title;
var builder = IntStream.builder();
for( var j = 11; j < row_num; ++j )
{
var row = (Row) rowIterator.next();
Cell s0 = sheet.getRow( j - 1 ).getCell( 0 );
if( !s0.toString().isEmpty() )
{
section_title = s0.toString();
builder.add( Integer.valueOf( j - 1 ) );
}
}
var array = builder.build().toArray();
System.out.println( array );
Под капотомэто решение может оказаться почти таким же, как и при использовании Коллекций.Но все равно выглядит аккуратнее.